import math

import queue

import bisect

import heapq

import time

import itertools



mod = int(1e9+7)



def swap(a,b):

    return (b,a)



def gcd(a,b): #最大公約数

    if (a<b):

        a,b = swap(a,b)

    if (b==0):

        return a

    else:

        return gcd(b,a%b)



def divisors(a): # 約数列挙

    divisors = []

    for i in range(1,int(a**0.5)+1):

        if a%i==0:

            divisors.append(i)

            if i!=a//i:

                divisors.append(a//i)

    return divisors



def is_prime(a): #素数判定

    if a<2:

        return False

    elif a==2:

        return True

    elif a%2==0:

        return False

    sqrt_num = int(a**0.5)

    for i in range(3,sqrt_num+1,2):

        if a%i==0:

            return False

    return True



def prime_num(a): #素数列挙

    pn = [2]

    for i in range(3,int(a**0.5),2):

        prime = True

        for j in pn:

            if i%j==0:

                prime = False

                break

        if prime:

            pn.append(i)

    return pn



def main():

    x = [y for y in map(int,input().split())]

    x.sort()

    f = 0

    s = 0

    for i in x:

        if i == 5:

            f += 1

        elif i == 7:

            s += 1

        else:

            print("NO")

            return

    if f==2 and s==1:

        print("YES")

    else:

        print("NO")

    return



if __name__=='__main__':

    main()

# import math

# import decimal

# import queue

# import bisect

# import heapq

# import time

# import itertools



mod = int(1e9+7)



class Library():

    @staticmethod

    def Swap(a,b):

        return [b,a]



    @staticmethod

    def myRound(a,dig=0): # 四捨五入

        # dig => 桁数

        # dig = 1 => 10の位

        # dig = -1 => 小数第一位

        p = 10 ** dig

        return (a * p * 2 + 1) // 2 / p



    @staticmethod

    def Roundup(a): # 切り上げ

        if a < 0:

            return int(a)

        else:

            return int(a + 0.9)

    # 整数の切り上げ => (a + b - 1) // b



    @staticmethod

    def Gcd(a,b): #最大公約数

        if (a<b):

            a,b = Library.Swap(a,b)

        if (b==0):

            return a

        else:

            return Library.Gcd(b,a%b)



    @staticmethod

    def Lcm(a,b): #最小公倍数

        return a//Library.Gcd(a,b)*b



    @staticmethod

    def Divisors(a): # 約数列挙

        divisors = []

        for i in range(1,int(a**0.5)+1):

            if a%i==0:

                divisors.append(i)

                if i!=a//i:

                    divisors.append(a//i)

        divisors.sort()

        return divisors



class Prime():

    # コンストラクタ

    # エラストテネスの篩

    def __init__(self,num):

        self.num = num

        self.sieve = [0] * (self.num + 1)

        self.sieve[0] = -1

        self.sieve[1] = -1

        for i in range(2,self.num + 1):

            if not self.sieve[i]:

                self.sieve[i] = i

                for j in range(i * i,self.num + 1,i):

                    if self.sieve[j]:

                        self.sieve[j] = i

    

    # 素数判定

    def isPrime(self,num = None):

        if num is None:

            num = self.num

        if self.sieve[num] == num:

            return True

        else:

            return False

    

    # 素数列挙

    def PrimeNum(self,num = None):

        if num is None:

            num = self.num

        prime = []

        for i in range(2,num):

            if self.sieve[i] == i:

                prime.append(i)

        return prime

    

    # 素因数分解

    def PrimeFact(self,num = None):

        if num is None:

            num = self.num

        fact = []

        while self.sieve[num] != num:

            fact.append(self.sieve[num])

            num //= self.sieve[num]

        fact.append(num)

        return fact



def main():

    abc = list(map(int,input().split()))

    abc.sort()

    if abc[0] == 5 and abc[1] == 5 and abc[2] == 7:

        print('YES')

    else:

        print('NO')

    return



if __name__=='__main__':

    main()

import math
import queue
import bisect
import heapq
import time
import itertools

mod = int(1e9 + 7)


def swap(a, b):
    return (b, a)


def gcd(a, b):  # 最大公約数
    if a < b:
        a, b = swap(a, b)
    if b == 0:
        return a
    else:
        return gcd(b, a % b)


def divisors(a):  # 約数列挙
    divisors = []
    for i in range(1, int(a**0.5) + 1):
        if a % i == 0:
            divisors.append(i)
            if i != a // i:
                divisors.append(a // i)
    return divisors


def is_prime(a):  # 素数判定
    if a < 2:
        return False
    elif a == 2:
        return True
    elif a % 2 == 0:
        return False
    sqrt_num = int(a**0.5)
    for i in range(3, sqrt_num + 1, 2):
        if a % i == 0:
            return False
    return True


def prime_num(a):  # 素数列挙
    pn = [2]
    for i in range(3, int(a**0.5), 2):
        prime = True
        for j in pn:
            if i % j == 0:
                prime = False
                break
        if prime:
            pn.append(i)
    return pn


def main():
    x = [y for y in map(int, input().split())]
    x.sort()
    f = 0
    s = 0
    for i in x:
        if i == 5:
            f += 1
        elif i == 7:
            s += 1
        else:
            print("NO")
            return
    if f == 2 and s == 1:
        print("YES")
    else:
        print("NO")
    return


if __name__ == "__main__":
    main()

# import math
# import decimal
# import queue
# import bisect
# import heapq
# import time
# import itertools
mod = int(1e9 + 7)


class Library:
    @staticmethod
    def Swap(a, b):
        return [b, a]

    @staticmethod
    def myRound(a, dig=0):  # 四捨五入
        # dig => 桁数
        # dig = 1 => 10の位
        # dig = -1 => 小数第一位
        p = 10**dig
        return (a * p * 2 + 1) // 2 / p

    @staticmethod
    def Roundup(a):  # 切り上げ
        if a < 0:
            return int(a)
        else:
            return int(a + 0.9)

    # 整数の切り上げ => (a + b - 1) // b
    @staticmethod
    def Gcd(a, b):  # 最大公約数
        if a < b:
            a, b = Library.Swap(a, b)
        if b == 0:
            return a
        else:
            return Library.Gcd(b, a % b)

    @staticmethod
    def Lcm(a, b):  # 最小公倍数
        return a // Library.Gcd(a, b) * b

    @staticmethod
    def Divisors(a):  # 約数列挙
        divisors = []
        for i in range(1, int(a**0.5) + 1):
            if a % i == 0:
                divisors.append(i)
                if i != a // i:
                    divisors.append(a // i)
        divisors.sort()
        return divisors


class Prime:
    # コンストラクタ
    # エラストテネスの篩
    def __init__(self, num):
        self.num = num
        self.sieve = [0] * (self.num + 1)
        self.sieve[0] = -1
        self.sieve[1] = -1
        for i in range(2, self.num + 1):
            if not self.sieve[i]:
                self.sieve[i] = i
                for j in range(i * i, self.num + 1, i):
                    if self.sieve[j]:
                        self.sieve[j] = i

    # 素数判定
    def isPrime(self, num=None):
        if num is None:
            num = self.num
        if self.sieve[num] == num:
            return True
        else:
            return False

    # 素数列挙
    def PrimeNum(self, num=None):
        if num is None:
            num = self.num
        prime = []
        for i in range(2, num):
            if self.sieve[i] == i:
                prime.append(i)
        return prime

    # 素因数分解
    def PrimeFact(self, num=None):
        if num is None:
            num = self.num
        fact = []
        while self.sieve[num] != num:
            fact.append(self.sieve[num])
            num //= self.sieve[num]
        fact.append(num)
        return fact


def main():
    abc = list(map(int, input().split()))
    abc.sort()
    if abc[0] == 5 and abc[1] == 5 and abc[2] == 7:
        print("YES")
    else:
        print("NO")
    return


if __name__ == "__main__":
    main()

-import math -import queue -import bisect -import heapq -import time -import itertools - +# import math +# import decimal +# import queue +# import bisect +# import heapq +# import time +# import itertools -def swap(a, b): -    return (b, a) +class Library: +    @staticmethod +    def Swap(a, b): +        return [b, a] + +    @staticmethod +    def myRound(a, dig=0):  # 四捨五入 +        # dig => 桁数 +        # dig = 1 => 10の位 +        # dig = -1 => 小数第一位 +        p = 10**dig +        return (a * p * 2 + 1) // 2 / p + +    @staticmethod +    def Roundup(a):  # 切り上げ +        if a < 0: +            return int(a) +        else: +            return int(a + 0.9) + +    # 整数の切り上げ => (a + b - 1) // b +    @staticmethod +    def Gcd(a, b):  # 最大公約数 +        if a < b: +            a, b = Library.Swap(a, b) +        if b == 0: +            return a +        else: +            return Library.Gcd(b, a % b) + +    @staticmethod +    def Lcm(a, b):  # 最小公倍数 +        return a // Library.Gcd(a, b) * b + +    @staticmethod +    def Divisors(a):  # 約数列挙 +        divisors = [] +        for i in range(1, int(a**0.5) + 1): +            if a % i == 0: +                divisors.append(i) +                if i != a // i: +                    divisors.append(a // i) +        divisors.sort() +        return divisors -def gcd(a, b):  # 最大公約数 -    if a < b: -        a, b = swap(a, b) -    if b == 0: -        return a -    else: -        return gcd(b, a % b) +class Prime: +    # コンストラクタ +    # エラストテネスの篩 +    def __init__(self, num): +        self.num = num +        self.sieve = [0] * (self.num + 1) +        self.sieve[0] = -1 +        self.sieve[1] = -1 +        for i in range(2, self.num + 1): +            if not self.sieve[i]: +                self.sieve[i] = i +                for j in range(i * i, self.num + 1, i): +                    if self.sieve[j]: +                        self.sieve[j] = i +    # 素数判定 +    def isPrime(self, num=None): +        if num is None: +            num = self.num +        if self.sieve[num] == num: +            return True +        else: +            return False -def divisors(a):  # 約数列挙 -    divisors = [] -    for i in range(1, int(a**0.5) + 1): -        if a % i == 0: -            divisors.append(i) -            if i != a // i: -                divisors.append(a // i) -    return divisors +    # 素数列挙 +    def PrimeNum(self, num=None): +        if num is None: +            num = self.num +        prime = [] +        for i in range(2, num): +            if self.sieve[i] == i: +                prime.append(i) +        return prime - -def is_prime(a):  # 素数判定 -    if a < 2: -        return False -    elif a == 2: -        return True -    elif a % 2 == 0: -        return False -    sqrt_num = int(a**0.5) -    for i in range(3, sqrt_num + 1, 2): -        if a % i == 0: -            return False -    return True - - -def prime_num(a):  # 素数列挙 -    pn = [2] -    for i in range(3, int(a**0.5), 2): -        prime = True -        for j in pn: -            if i % j == 0: -                prime = False -                break -        if prime: -            pn.append(i) -    return pn +    # 素因数分解 +    def PrimeFact(self, num=None): +        if num is None: +            num = self.num +        fact = [] +        while self.sieve[num] != num: +            fact.append(self.sieve[num]) +            num //= self.sieve[num] +        fact.append(num) +        return fact -    x = [y for y in map(int, input().split())] -    x.sort() -    f = 0 -    s = 0 -    for i in x: -        if i == 5: -            f += 1 -        elif i == 7: -            s += 1 -        else: -            print("NO") -            return -    if f == 2 and s == 1: +    abc = list(map(int, input().split())) +    abc.sort() +    if abc[0] == 5 and abc[1] == 5 and abc[2] == 7: