stablegradients/pie-gem5-bysrc huggingface dataset:
// Original C++ solution (slower):
#include<iostream>

#include<iomanip>

#include<cmath>

#include<string>

#include<cstring>

#include<vector>

#include<list>

#include<algorithm>

#include<map>

#include<set>

#include<queue>

#include<stack>

using namespace std;

typedef long long ll;

#define fi first

#define se second

#define mp make_pair

#define rep(i, n) for(int i=0;i<n;++i)

#define rrep(i, n) for(int i=n;i>=0;--i)

const int inf=1e9+7;

const ll mod=1e9+7;

const ll big=1e18;

const double PI=2*asin(1);



vector<vector<int> > edge(10);



int main() {

  int N, M;

  cin>>N>>M;

  int a, b;

  for(int i=0;i<M;++i) {

    cin>>a>>b;

    a--;

    b--;

    edge[a].push_back(b);

    edge[b].push_back(a);

  }

  vector<int> node;

  for(int i=0;i<N;++i) node.push_back(i);

  int ans = 0;

  bool can, tmp;

  do {

    if(node[0]!=0) can = false;

    else can = true;

    for(int i=0;i<N-1;++i) {

      tmp = false;

      for(int j=0;j<edge[node[i]].size();++j) {

        if(edge[node[i]][j]==node[i+1]) tmp = true;

      }

      can = min(can, tmp);

    }

    if(can) {

      ans++;

    }

  }while(next_permutation(node.begin(), node.end()));

  cout<<ans<<endl;

}




// Optimized solution to the same problem (faster):
#include<iostream>

#include<iomanip>

#include<cmath>

#include<string>

#include<cstring>

#include<vector>

#include<list>

#include<algorithm>

#include<map>

#include<set>

#include<queue>

#include<stack>

using namespace std;

typedef long long ll;

#define fi first

#define se second

#define mp make_pair

#define rep(i, n) for(int i=0;i<n;++i)

#define rrep(i, n) for(int i=n;i>=0;--i)

const int inf=1e9+7;

const ll mod=1e9+7;

const ll mod1=998244353;

const ll big=1e18;

const double PI=2*asin(1);



int main() {

  int N, M;

  cin>>N>>M;

  vector<vector<int> > edge(N);

  int a, b;

  for(int i=0;i<M;++i) {

    cin>>a>>b;

    a--;

    b--;

    edge[a].push_back(b);

    edge[b].push_back(a);

  }

  vector<int> arr(N);

  for(int i=0;i<N;++i) arr[i] = i;

  bool can;

  bool tmpcan;

  int ans = 0;

  do {

    if(arr[0]!=0) continue;

    can = true;

    for(int i=0;i<N-1;++i) {

      tmpcan = false;

      for(int j=0;j<edge[arr[i]].size();++j) {

        if(edge[arr[i]][j]==arr[i+1]) tmpcan = true;

      }

      if(!tmpcan) can = false;

    }

    if(can) {

      ans++;

    }

  }while(next_permutation(arr.begin(), arr.end()));

  cout<<ans<<endl;

}




// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <iostream>

#include <algorithm>

#include <vector>

#include <string>

using namespace std;



int n,m,ans=0;

bool used[10];

int perm[10],a[50],b[50];



bool che(int x,int y){

    for(int i=0;i<m;i++){

        if(a[i]==x&&b[i]==y)return true;

        if(a[i]==y&&b[i]==x)return true;

    }

    return false;

}



void solve(){

    bool res=true;

    for(int i=0;i<n-1;i++){

        int x=perm[i],y=perm[i+1];

        if(!che(x,y))res=false;

    }

    if(res)ans++;

}



void permutation1(int pos,int n){

    if(pos==n){

        if(perm[0]==1)solve();

        return ;

    }

    

    for(int i=0;i<n;i++){

        if(!used[i]){

            perm[pos]=i+1;

            used[i]=true;

            permutation1(pos+1,n);

            used[i]=false;

        }

    }

    return ;

}



int main(void){

    cin>>n>>m;

    for(int i=0;i<m;i++){

        cin>>a[i]>>b[i];

    }

    permutation1(0,n);

    cout<<ans<<endl;

    return 0;

}


// Optimized solution to the same problem (faster):
#include <bits/stdc++.h>

#define INF 1e18

#define int long long

#define Rep(i, a, n) for (int i = (a); i < (n); i++)

#define rep(i, n) Rep(i, 0, n)

#define all(a) (a).begin(), (a).end()

using namespace std;

typedef pair<int, int> P;

typedef pair<int, P> PP;

const int mod = 1000000007;



signed main()

{

    ios::sync_with_stdio(false);

    cin.tie(0);



    int n, m;

    cin >> n >> m;

    int e[10][10] = {};

    rep(i, m)

    {

        int a, b;

        cin >> a >> b;

        a--, b--;

        e[a][b] = e[b][a] = 1;

    }

    vector<int> perm(n);

    rep(i, n) perm[i] = i;

    int ans = 0;

    do

    {

        if (perm[0] != 0)

            break;

        bool f = true;

        rep(i, n - 1) if (!e[perm[i]][perm[i + 1]]) f = false;

        if (f)

            ans++;

    } while (next_permutation(all(perm)));

    cout << ans << endl;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<bits/stdc++.h>

using namespace std;



int main()

{

	int n;

	cin>>n;

	if(n%10 == 3) cout<<"bon"<<endl;

	else if(n%10 == 0 || n%10 == 1 || n%10 == 6 || n%10 == 8)

	    cout<<"pon"<<endl;

	else cout<<"hon"<<endl;

	

	return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

int main()

{

          int x,a;

          scanf("%d",&x);

          a=x%10;

          if (a==2||a==4||a==5||a==7||a==9)

                    printf("hon\n");

          else if(a==0||a==1||a==6||a==8)

                    printf("pon\n");

          else

                    printf("bon\n");

          return 0;

}


// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream>

using namespace std;

	int main(){

		int n;

		cin>>n;

		n%=10;

		if(n==3)

			cout<<"bon\n";

		else if(n==0||n==1||n==6||n==8)

			cout<<"pon\n";

		else

			cout<<"hon\n";

	}

// Optimized solution to the same problem (faster):
#include <stdio.h>

int main()

{

          int x,a;

          scanf("%d",&x);

          a=x%10;

          if (a==2||a==4||a==5||a==7||a==9)

                    printf("hon\n");

          else if(a==0||a==1||a==6||a==8)

                    printf("pon\n");

          else

                    printf("bon\n");

          return 0;

}


// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <bits/stdc++.h>



using namespace std;



int main()

{

    int n;

    cin>>n;

    if(n%10==2||n%10==4||n%10==5||n%10==7||n%10==9)cout<<"hon";

    else if(n%10==0||n%10==1||n%10==6||n%10==8)cout<<"pon";

    else

    cout<<"bon";





    return 0;

}


// Optimized solution to the same problem (faster):
#include <stdio.h>

int main()

{

          int x,a;

          scanf("%d",&x);

          a=x%10;

          if (a==2||a==4||a==5||a==7||a==9)

                    printf("hon\n");

          else if(a==0||a==1||a==6||a==8)

                    printf("pon\n");

          else

                    printf("bon\n");

          return 0;

}


// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<bits/stdc++.h>

using namespace std;



int main()

{

	int n;cin>>n;

	n%=10;

	if(n==2||n==4||n==5||n==7||n==9)cout<<"hon"<<endl;

	else if(n==0||n==1||n==6||n==8)cout<<"pon"<<endl;

	else cout<<"bon"<<endl;

	return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

int main()

{

          int x,a;

          scanf("%d",&x);

          a=x%10;

          if (a==2||a==4||a==5||a==7||a==9)

                    printf("hon\n");

          else if(a==0||a==1||a==6||a==8)

                    printf("pon\n");

          else

                    printf("bon\n");

          return 0;

}


// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream>



using namespace std;



int main(){

    int n;

    while(cin>>n){

        n %= 10;

        if(n==2||n==4||n==5||n==7||n==9){

            cout << "hon" << endl;

        }

        else if(n==0||n==1||n==6||n==8){

            cout << "pon" << endl;

        }

        else if(n==3){

            cout << "bon" << endl;

        }

    }

    return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

int main()

{

          int x,a;

          scanf("%d",&x);

          a=x%10;

          if (a==2||a==4||a==5||a==7||a==9)

                    printf("hon\n");

          else if(a==0||a==1||a==6||a==8)

                    printf("pon\n");

          else

                    printf("bon\n");

          return 0;

}


// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream>

using namespace std;

int main()

{

	int n;

	cin>>n;

	int m=n%10;

	if(m==3)

	cout<<"bon";

	else if(m==0||m==1||m==6||m==8)

	cout<<"pon";

	else

	cout<<"hon";

	return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

int main()

{

          int x,a;

          scanf("%d",&x);

          a=x%10;

          if (a==2||a==4||a==5||a==7||a==9)

                    printf("hon\n");

          else if(a==0||a==1||a==6||a==8)

                    printf("pon\n");

          else

                    printf("bon\n");

          return 0;

}


// Fastest known solution for this problem:
// Original C++ solution (slower):


#include<iostream> 



using namespace std;



int main()

{

	int a;

	cin>>a;

	int ans=a%10;

	if(ans==3)

	{

		cout<<"bon"<<endl;

	}

	else if(ans==0||ans==1||ans==6||ans==8)

	{

		cout<<"pon"<<endl;

	}

	else

	{

		cout<<"hon"<<endl;

	}



return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

int main()

{

          int x,a;

          scanf("%d",&x);

          a=x%10;

          if (a==2||a==4||a==5||a==7||a==9)

                    printf("hon\n");

          else if(a==0||a==1||a==6||a==8)

                    printf("pon\n");

          else

                    printf("bon\n");

          return 0;

}


// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<bits/stdc++.h>

using namespace std;

typedef long long ll;



void solve()

{

    ll n,a,i;

    cin >> n;

    a=n%10;

    if(a==2 || a==4 || a==5 || a==7 || a==9)cout << "hon";

    else if(a==0 || a==1 || a==6 || a==8)cout << "pon";

    else cout << "bon";

}



int main()

{

    ll t,i;

    solve();



    return 0;

}




// Optimized solution to the same problem (faster):
#include <stdio.h>

int main()

{

          int x,a;

          scanf("%d",&x);

          a=x%10;

          if (a==2||a==4||a==5||a==7||a==9)

                    printf("hon\n");

          else if(a==0||a==1||a==6||a==8)

                    printf("pon\n");

          else

                    printf("bon\n");

          return 0;

}


// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream>

#include<cmath>

#include<iomanip>

#include<algorithm>

#include<string.h>

using namespace std;

typedef long long ll;

int main()

{

	int n;

	cin>>n;

	int t=n%10;

	if(t==2||t==4||t==5||t==7||t==9)

	cout<<"hon";

	else if(t==3)

	cout<<"bon";

	else

	cout<<"pon";

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

int main()

{

    int N;

    scanf("%d",&N);

    if((N%10==2)||(N%10==4)||(N%10==5)||(N%10==7)||(N%10==9))

    {

        printf("hon\n");

    }

    else if((N%10==0)||(N%10==1)||(N%10==6)||(N%10==8))

    {

        printf("pon\n");

    }

    else if(N%10==3)

    {

        printf("bon\n");

    }

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <bits/stdc++.h>



using namespace std;



int main()

{

	string a;

	cin>>a;

	int temp=a[a.length()-1]-'0';

	if (temp==2||temp==4||temp==5||temp==7||temp==9)

		cout<<"hon";

	else if (temp==3)

		cout<<"bon";

	else

		cout<<"pon";

    return 0;

}


// Optimized solution to the same problem (faster):
#include <stdio.h>

int main()

{

    int N;

    scanf("%d",&N);

    if((N%10==2)||(N%10==4)||(N%10==5)||(N%10==7)||(N%10==9))

    {

        printf("hon\n");

    }

    else if((N%10==0)||(N%10==1)||(N%10==6)||(N%10==8))

    {

        printf("pon\n");

    }

    else if(N%10==3)

    {

        printf("bon\n");

    }

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream>

using namespace std;

int main()

{

	int n,a;

	cin>>n;

	a=n%10;

	if(a==2||a==4||a==5||a==7||a==9) cout<<"hon"<<endl;

	else if(a==0||a==1||a==6||a==8) cout<<"pon"<<endl;

	else if(a==3) cout<<"bon"<<endl;

	return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

int main()

{

    int N;

    scanf("%d",&N);

    if((N%10==2)||(N%10==4)||(N%10==5)||(N%10==7)||(N%10==9))

    {

        printf("hon\n");

    }

    else if((N%10==0)||(N%10==1)||(N%10==6)||(N%10==8))

    {

        printf("pon\n");

    }

    else if(N%10==3)

    {

        printf("bon\n");

    }

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<bits/stdc++.h>

using namespace std;

int main(){

    long long n;

    cin>>n;

    if(n%10==2||n%10==4||n%10==5||n%10==7||n%10==9)

        cout<<"hon";

    else if(n%10==0||n%10==1||n%10==6||n%10==8)

        cout<<"pon";

    else cout<<"bon";

    return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

int main()

{

    int N;

    scanf("%d",&N);

    if((N%10==2)||(N%10==4)||(N%10==5)||(N%10==7)||(N%10==9))

    {

        printf("hon\n");

    }

    else if((N%10==0)||(N%10==1)||(N%10==6)||(N%10==8))

    {

        printf("pon\n");

    }

    else if(N%10==3)

    {

        printf("bon\n");

    }

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream>

using namespace std;



int main()

{

	int n;

	while(cin>>n)

	{

		int ans=n%10;

		if(ans==2||ans==4||ans==5||ans==7||ans==9)

		cout<<"hon"<<endl;

		else if(ans==0||ans==1||ans==6||ans==8)

		cout<<"pon"<<endl;

		else

		cout<<"bon"<<endl;

	}

	

return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

int main()

{

    int N;

    scanf("%d",&N);

    if((N%10==2)||(N%10==4)||(N%10==5)||(N%10==7)||(N%10==9))

    {

        printf("hon\n");

    }

    else if((N%10==0)||(N%10==1)||(N%10==6)||(N%10==8))

    {

        printf("pon\n");

    }

    else if(N%10==3)

    {

        printf("bon\n");

    }

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<stdio.h>

#include<math.h>

#include<algorithm>

#include<iostream>

#include<cstring> 

#include<cstdlib>

#include<set>

#include<vector>

using namespace std;

#define ll long long

const int maxn = 2e5 + 5;

const int inf =9999999;



int main()

{     int t;

	cin>>t;

     if(t%10==3)

     cout<<"bon"<<endl;

     else if(t%10==0||t%10==1||t%10==6||t%10==8)

     cout<<"pon"<<endl;

     else

     cout<<"hon"<<endl;



	

}

	 

		

	  	

	  

// Optimized solution to the same problem (faster):
#include <stdio.h>

int main()

{

    int N;

    scanf("%d",&N);

    if((N%10==2)||(N%10==4)||(N%10==5)||(N%10==7)||(N%10==9))

    {

        printf("hon\n");

    }

    else if((N%10==0)||(N%10==1)||(N%10==6)||(N%10==8))

    {

        printf("pon\n");

    }

    else if(N%10==3)

    {

        printf("bon\n");

    }

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream>

#include<algorithm>

#include<string>

#include<iomanip>

#include<cmath>

using namespace std;



int main() {

	int n;

	cin >> n;

	n = n % 10;

	if (n == 2 || n == 4 || n == 5 || n == 7 || n == 9)cout << "hon";

	else if (n == 0 || n == 1 || n == 6 || n == 8)cout << "pon";

	else cout << "bon";

}


// Optimized solution to the same problem (faster):
#include <stdio.h>

int main()

{

    int N;

    scanf("%d",&N);

    if((N%10==2)||(N%10==4)||(N%10==5)||(N%10==7)||(N%10==9))

    {

        printf("hon\n");

    }

    else if((N%10==0)||(N%10==1)||(N%10==6)||(N%10==8))

    {

        printf("pon\n");

    }

    else if(N%10==3)

    {

        printf("bon\n");

    }

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream> 

#include<string>

#include<cstring>

#include<algorithm>

#include<stack>

#include<cmath>

#define ll long long

using namespace std;

const int N=2e5+5;

const int M=1e8;

const ll Max=1e18+1000;

ll a[N];



int main()

{

	int n;

	while(cin>>n)

	{

		int a=n%10;

		if(a==2 || a==4 || a==5 || a==7 || a==9)

		cout<<"hon"<<endl; 

		else if(a==0 || a==1 || a==6 || a==8)

		cout<<"pon"<<endl;

		else 

		cout<<"bon"<<endl;

	}

	return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

int main()

{

    int N;

    scanf("%d",&N);

    if((N%10==2)||(N%10==4)||(N%10==5)||(N%10==7)||(N%10==9))

    {

        printf("hon\n");

    }

    else if((N%10==0)||(N%10==1)||(N%10==6)||(N%10==8))

    {

        printf("pon\n");

    }

    else if(N%10==3)

    {

        printf("bon\n");

    }

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream>

using namespace std;

int main()

{

	int n;cin>>n;

	int x=n%10;

	if(x==2||x==4||x==5||x==7||x==9) cout<<"hon";

	else if(x==0||x==1||x==6||x==8) cout<<"pon";

	else cout<<"bon";

}

// Optimized solution to the same problem (faster):
#include <stdio.h>

int main()

{

    int N;

    scanf("%d",&N);

    if((N%10==2)||(N%10==4)||(N%10==5)||(N%10==7)||(N%10==9))

    {

        printf("hon\n");

    }

    else if((N%10==0)||(N%10==1)||(N%10==6)||(N%10==8))

    {

        printf("pon\n");

    }

    else if(N%10==3)

    {

        printf("bon\n");

    }

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream>

#include<algorithm>

#include<cstring>

#include<iomanip>

#include<cstdio>

using namespace std;

typedef long long ll;

const ll inf=0x3f3f3f3f;

int main()

{

	int n,t;

	cin>>n;

	t=n%10;

	if(t==2||t==4||t==5||t==7||t==9)

	cout<<"hon";

	else if(t==0||t==1||t==6||t==8)

	cout<<"pon";

	else

	cout<<"bon";

	return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>



int main(){

	int num;

	scanf("%d",&num);

	if (num%10==2||num%10==4||num%10==5||num%10==7||num%10==9){

		printf("hon\n");

	}

	else if(num%10==0||num%10==1||num%10==6||num%10==8){

		printf("pon\n");

	}

	else if(num%10==3){

		printf("bon\n");

	}

	return 0;

}


// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream>

using namespace std;

int main(){

	int x, m;

	cin>>x;

	m=x%10;

	if(m==2||m==4||m==5||m==7||m==9)

	cout<<"hon";

	else if(m==0||m==1||m==6||m==8)

	cout<<"pon";

	else if(m==3)

	cout<<"bon";

}  

// Optimized solution to the same problem (faster):
#include <stdio.h>



int main(){

	int num;

	scanf("%d",&num);

	if (num%10==2||num%10==4||num%10==5||num%10==7||num%10==9){

		printf("hon\n");

	}

	else if(num%10==0||num%10==1||num%10==6||num%10==8){

		printf("pon\n");

	}

	else if(num%10==3){

		printf("bon\n");

	}

	return 0;

}


// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream>

#include<cstdio>

using namespace std;



int main(){

	int n;

	string a[10]={"pon","pon","hon","bon","hon","hon","pon","hon","pon","hon"};

	cin>>n;

	cout<<a[n%10];

	return 0;

} 

// Optimized solution to the same problem (faster):
#include <stdio.h>



int main(){

	int num;

	scanf("%d",&num);

	if (num%10==2||num%10==4||num%10==5||num%10==7||num%10==9){

		printf("hon\n");

	}

	else if(num%10==0||num%10==1||num%10==6||num%10==8){

		printf("pon\n");

	}

	else if(num%10==3){

		printf("bon\n");

	}

	return 0;

}


// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream>

using namespace std;

int main()

{

	int n;

	cin>>n;

	if(n%10==2||n%10==4||n%10==5||n%10==7||n%10==9)

	{

		cout<<"hon";

	}

	else if(n%10==0||n%10==1||n%10==6||n%10==8)

	{

		cout<<"pon";

	}

	else if(n%10==3)

	{

		cout<<"bon";

	}

	return 0;

} 

// Optimized solution to the same problem (faster):
#include <stdio.h>



int main(){

	int num;

	scanf("%d",&num);

	if (num%10==2||num%10==4||num%10==5||num%10==7||num%10==9){

		printf("hon\n");

	}

	else if(num%10==0||num%10==1||num%10==6||num%10==8){

		printf("pon\n");

	}

	else if(num%10==3){

		printf("bon\n");

	}

	return 0;

}


// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream>

using namespace std;

int main(){

	int a;

	cin>>a;

	if(a%10==3)

	cout<<"bon"<<endl;

	else if(a%10==0||a%10==1||a%10==6||a%10==8)

	cout<<"pon"<<endl;

	else cout<<"hon"<<endl;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>



int main(){

	int num;

	scanf("%d",&num);

	if (num%10==2||num%10==4||num%10==5||num%10==7||num%10==9){

		printf("hon\n");

	}

	else if(num%10==0||num%10==1||num%10==6||num%10==8){

		printf("pon\n");

	}

	else if(num%10==3){

		printf("bon\n");

	}

	return 0;

}


// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream>

using namespace std;

int main()

{

	long long N;

	cin>>N;

	if(N%10==2||N%10==4||N%10==5||N%10==7||N%10==9)

	{

		cout<<"hon"<<endl;

	}

	else if(N%10==0||N%10==1||N%10==6||N%10==8)

	{

		cout<<"pon"<<endl;

	}

	else

	cout<<"bon"<<endl;

	return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>



int main(){

	int num;

	scanf("%d",&num);

	if (num%10==2||num%10==4||num%10==5||num%10==7||num%10==9){

		printf("hon\n");

	}

	else if(num%10==0||num%10==1||num%10==6||num%10==8){

		printf("pon\n");

	}

	else if(num%10==3){

		printf("bon\n");

	}

	return 0;

}


// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <iostream>

using namespace std;

int main() {

    int n;

    while (cin >> n) {

        while (n >= 10) {

            n %= 10;

        }

        if (n == 2 || n == 4 || n == 5 || n == 7 || n == 9)

            cout << "hon" << endl;

        else if (n == 0 || n == 1 || n == 6 || n == 8)

            cout << "pon" << endl;

        else {

            cout << "bon" << endl;

        }

    }

    return 0;

}


// Optimized solution to the same problem (faster):
#include <stdio.h>



int main(){

	int num;

	scanf("%d",&num);

	if (num%10==2||num%10==4||num%10==5||num%10==7||num%10==9){

		printf("hon\n");

	}

	else if(num%10==0||num%10==1||num%10==6||num%10==8){

		printf("pon\n");

	}

	else if(num%10==3){

		printf("bon\n");

	}

	return 0;

}


// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream>

#include<cstring>

using namespace std;

int main(){

	string a;

	int len;

	cin>>a;

	len=a.length()-1;

	if(a[len]=='2'||a[len]=='4'||a[len]=='5'||a[len]=='7'||a[len]=='9'){

		cout<<"hon"<<endl;

	}else if(a[len]=='0'||a[len]=='1'||a[len]=='6'||a[len]=='8'){

		cout<<"pon"<<endl;

	}else if(a[len]=='3'){

		cout<<"bon"<<endl;

	}

	return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h>



int main(){

	int num;

	scanf("%d",&num);

	if (num%10==2||num%10==4||num%10==5||num%10==7||num%10==9){

		printf("hon\n");

	}

	else if(num%10==0||num%10==1||num%10==6||num%10==8){

		printf("pon\n");

	}

	else if(num%10==3){

		printf("bon\n");

	}

	return 0;

}


// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream>

using namespace std;



int main()

{long long n,q,l;

 while(cin>>n)

 {if(n%10==3)

  cout<<"bon"<<endl;

  else if(n%10==0||n%10==1||n%10==6||n%10==8)

  cout<<"pon"<<endl;

  else

  cout<<"hon"<<endl;

  

 }

 return 0;

 } 

// Optimized solution to the same problem (faster):
#include <stdio.h>



int main(){

	int num;

	scanf("%d",&num);

	if (num%10==2||num%10==4||num%10==5||num%10==7||num%10==9){

		printf("hon\n");

	}

	else if(num%10==0||num%10==1||num%10==6||num%10==8){

		printf("pon\n");

	}

	else if(num%10==3){

		printf("bon\n");

	}

	return 0;

}


// Fastest known solution for this problem: