//Rubyだけのテストだと不評を買いそうで. #include long long isqrt(__int128_t n){ if(n<=0)return 0; if(n<4)return 1; __int128_t x=0,y=n; for(;x!=y&&x+1!=y;)x=y,y=(n/y+y)/2; return (long long)x; } int main(){ long long n; scanf("%lld",&n); __int128_t x=(__int128_t)n*8+1,q=isqrt(x); if(q*q!=x||q%2==0)puts("NO"); else printf("YES\n%lld\n",q-1>>1); }