#include <bits/stdc++.h>
using namespace std;
vector<bool> isprime(1e7 + 1, true);
struct node {
  long long lenght;
};
void Sieve(long long maxn) {
  long long j;
  isprime[0] = isprime[1] = false;
  for (int i = 2; i < sqrt(maxn) + 1; i++) {
    if (isprime[i]) {
      for (j = i * i; j <= maxn; j += i) {
        isprime[j] = false;
      }
    }
  }
}
struct comparefunction {
  bool operator()(const pair<long long int, long long int> c,
                  const pair<long long int, long long int> d) const {
    long long lenc = c.second - c.first + 1;
    long long lend = d.second - d.first + 1;
    if (lenc != lend)
      return lenc > lend;
    else
      return c.first < d.first;
  }
};
void dfs(long long v, vector<bool> visited, vector<int> adj[]) {
  visited[v] = true;
  for (int u : adj[v]) {
    if (!visited[u]) dfs(u, visited, adj);
  }
}
long long modpow(long long x, long long n, long long p) {
  if (n == 0) return 1;
  if (n == 1) return x % p;
  if (n % 2 == 0)
    return (modpow(x, n / 2, p) % p) * (modpow(x, n / 2, p) % p);
  else
    return (x % p) * (modpow(x, n / 2, p) % p) * (modpow(x, n / 2, p) % p);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long check1 = 0, check2 = 0, check3 = 0;
  long long counti = 0, i = 0, j;
  long long sum = 0, count = 0;
  long long t;
  long long p;
  long long n;
  cin >> n;
  long long num1 = n % 10;
  if (num1 == 1 || num1 == 0 == num1 == 6 || num1 == 8) cout << "pon";
  if (num1 == 3)
    cout << "bon";
  else
    cout << "hon";
}
