#include #include #include #include #include #include #include #include #include #include #include #define FOR(i, a, b) for (i = a; i < b; ++i) #define rep(N) for (int i = 0; i < N; ++i) #define For(i, N) for (i = 0; i < N; ++i) #define rev(N) for (int i = N - 1; i >= 0; --i) #define all(v) v.begin(), v.end() #define make(N) int N; cin >> N; #define makel(N) ll N; cin >> N; #define mod 1000000007 #define re return 0 #define X (x*x-1)/8 using namespace std; using ll = long long int; using vi = vector; using vvi = vector>; using vll = vector; using vb = vector; using vvb = vector>; using vs = vector; using pii = pair; using pis = pair; template void say(T s) { cout << s << endl; } template void say(vector s) { auto itr = s.begin(); cout << *(itr++); while (itr != s.end()) { cout << " " << *(itr++); } cout << endl; } int main() { makel(n); ll Min = 1; ll Max = 5e9; while (Min < Max) { ll x = (Min + Max) / 2; if (X == n) { say("YES"); say((x - 1) / 2); re; } else if (n < X) Max = x; else Min = x; } say("NO"); }