//用改造一下构造集合元素的方法
//没有考虑0!导致了3次WA,但是从题意感觉是从1开始的。
#include<cstdlib>
#include<cstdio>
#include<cstring>
int farr[11];
bool stop=false;
void cal(int n,int sum,int cur );
int main()
{
farr[0]=1;
farr[1]=1;
for(int i=2;i<=10;i++)
farr[i]=i*farr[i-1];
int n;
while(~scanf("%d",&n)){
stop=false;
cal(n,0,0);
if(!stop)
puts("NO");
}//end while
return 0;
}
void cal(int n,int sum,int cur )
{
if(sum>n || cur>10)
return;
if(sum==n)
{
puts("YES");
stop=true;
return;
}
if(!stop)
cal(n,sum+farr[cur],cur+1);
if(!stop)
cal(n,sum,cur+1);
}