#include using namespace std; using i64=int64_t; #define rep(i,x,y) for(i64 i=i64(x),i##_max_for_repmacro=i64(y); i ostream &operator<<(ostream &os, const vector &vec){ os << "["; for (const auto &v : vec) { os << v << ","; } os << "]"; return os; } void solve(){ i64 n; cin >> n; i64 lb=0, ub=i64(inf)*2; while(ub-lb>1){ i64 m=(lb+ub)/2; if(m*(m+1)/2>=n) ub=m; else lb=m; } if(ub*(ub+1)/2==n){ cout << "YES" << endl << ub << endl; }else{ cout << "NO" << endl; } } int main(){ std::cin.tie(0); std::ios::sync_with_stdio(false); cout.setf(ios::fixed); cout.precision(16); solve(); return 0; }