// Slower C++ solution:
#include<bits/stdc++.h>

#define lln long long int

#define llu unsigned lln

#define sc(n) scanf("%d",&n);

#define scl(n) scanf("%lld",&n);

#define scd(n) scanf("%lf",&n);

#define pf(res) printf("%d\n",res);

#define pfl(res) printf("%lld\n",res);

#define pfd(res) printf("%lf\n",res);

#define maxii 100005

using namespace std;

typedef pair<int,int> pii;

typedef pair<lln,lln> pll;

 vector<int> vi[maxii];

 vector<int>:: iterator child;

typedef vector<lln> vl;

typedef vector<pii> vii;

typedef vector<pll> vll;





int arr[maxii];

int arr2[maxii];

bool check[maxii];



bool dfs(int node,int c)

{

    check[node]=true;

    arr2[node]=c;

    for(int child=0;child<vi[node].size();child++)

    {

        if(check[vi[node][child]]==false)

        {

            if(dfs(vi[node][child],c^1)==false)

            {

                return false;

            }

        }

        else if(arr2[node]==arr2[vi[node][child]])

        {

            return false;

        }

        //else if()

    }

    return true;

}



int main()

{

    int arrrr[4];

    cin>>arrrr[0]>>arrrr[1]>>arrrr[2];

    sort(arrrr,arrrr+3);

    if(arrrr[0]==5 && arrrr[1]==5 && arrrr[2]==7  )

    {

        printf("YES\n");

    }

    else printf("NO\n");



}


// Faster C++ solution for the same problem (measured speedup: 3.494331352250379x):
#include<bits/stdc++.h>



using namespace std;

#define Pi acos(-1)

#define _terminated return 0

#define endl "\n"

#define yes cout << "yes" << endl 

#define no cout << "no" << endl 

#define booster ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);





typedef long long ll;

typedef unsigned long long ull;

typedef vector<int> vi;

typedef vector<ll> vll;

typedef vector<vector<long> > v2l;



const int mod = 1e+5;

const int mx = 2e+5;

const ll inf = 1e18;



void upper_bubble_sort(){

     int i,j,temp,number_of_input;

     int array[100];

     cin >> number_of_input;

     for(i=0; i<number_of_input; i++)

         cin >> array[i];

         for(i=0; i<number_of_input; i++){

             for(j=0; j<(number_of_input-i-1); j++){

               if(array[j] > array[j+1]){

                 temp = array[j];

                 array[j] = array[j+1];

                 array[j+1] = temp;

                }

              }

         }

    for(i=0; i<number_of_input; i++)

      cout << array[i] << endl;

}

void bst(void){

          int low,high,mid,keynum,num,array[100];

          cin >> keynum;

          low = 1;

	         high = num;

         	do{

		        mid = (low + high) / 2;

		         if(keynum < array[mid])

			         high = mid - 1;

		         else if (keynum > array[mid])

			         low = mid + 1;

	         } 

          while (keynum != array[mid] && low <= high);

	        if(keynum == array[mid]){

            cout << "number located at " << mid +1 << endl;}

         else

           no;

}

     

void solvio(void){

     int a,b,c;

     cin >> a >> b >> c;

     if((a==5 && b==7 && c==5)||(a==5 && b==5 && c==7)||(a==7 && b==5 && c==5))

       cout << "YES" << endl;

     else

        cout << "NO" << endl;

}



int main(){

    booster;

    solvio();

    _terminated;

}