#include using namespace std; #define rep(i,n) for(int i = 0; i < (n);i++) #define sz(x) int(x.size()) typedef unsigned long long ll; typedef long double ld; typedef pair P; bool is_prime(long long n){ for(long long i = 2; i*i <= n ; i++){ if(n%i == 0) return false; } return n != 1 && n != 0; } vector divisor(long long n){ vector res; for(long long i = 1; i*i <= n; i++){ if(n%i==0){ res.push_back(i); if(n/i != i)res.push_back(n/i); } } return res; } bool is_hei (int n){ bool ok = false; for (int i = 2; i * i <= n; i++) { if (i * i == n) ok = true; } return ok; } bool is_rip (int n) { bool ok = false; for (int i = 2; i * i * i <= n; i++) { if (i * i * i == n) ok = true; } return ok; } int main() { int n; cin >> n; auto div = divisor(n); int cnt = 0; for (auto e : div) cnt += e; cnt -= n; if (is_prime(n)) cout << "Sosu!" << endl; else if (is_hei(n)) cout << "Heihosu!" << endl; else if (is_rip(n)) cout << "Ripposu!" << endl; else if (cnt == n && n != 0) cout << "Kanzensu!" << endl; else cout << n << endl; return 0; }