//Normal #define _GLIBCXX_DEBUG #define ll long long #include using namespace std; using Graph = vector>; void print(auto a){ cout << a; } void prints(auto a){ cout << a << " "; } void prints(){ cout << " "; } void printl(auto a){ cout << a << endl; } void printl(){ cout << endl; } void fix(int n){ cout << fixed << setprecision(n); } int siz(string s){ return (int)s.size(); } int main(){ ll N; cin >> N; ll ng = 0, ok = 2e9; while(ng+1 < ok){ ll mid = (ng+ok)/2; N <= mid*(mid+1)/2 ? ok = mid : ng = mid; } if(N == ok*(ok+1)/2){ printl("YES"); printl(ok); }else{ printl("NO"); } return 0; }