#include <bits/stdc++.h>
using namespace std;
int spf[1000005];
vector<long long> vp;
void sieve() {
  spf[1] = 1;
  for (int i = 2; i < 1000005; i++) spf[i] = i;
  for (int i = 4; i < 1000005; i += 2) spf[i] = 2;
  for (int i = 3; i * i < 1000005; i++) {
    if (spf[i] == i) {
      for (int j = i * i; j < 1000005; j += i)
        if (spf[j] == j) spf[j] = i;
    }
  }
  for (int i = 2; i <= 100000; i++) {
    if (spf[i] == i) vp.push_back(i);
  }
}
vector<int> gf(int x) {
  vector<int> ret;
  while (x != 1) {
    ret.push_back(spf[x]);
    x = x / spf[x];
  }
  return ret;
}
int BIT[100050];
void upd(int x) {
  ++x;
  while (x <= 1000005) {
    BIT[x]++;
    x += (x & -x);
  }
}
int cal(int x) {
  ++x;
  int res = 0;
  while (x > 0) {
    res += BIT[x];
    x -= (x & -x);
  }
  return res;
}
long long mod = 1000000007;
long long pr(long long x, long long y) {
  long long ans = 1;
  if (y == 0) return ans;
  while (y > 1) {
    if (y & 1) ans *= x;
    x *= x;
    y /= 2;
    x %= mod;
    ans %= mod;
  }
  ans *= x;
  ans %= mod;
  return ans;
}
long long inv(long long n) { return pr(n, mod - 2); }
long long stoi(string s) {
  int n = s.size();
  long long k = 0;
  int i;
  for (i = 0; i < n; i++) {
    k += s[i] - '0';
    k *= 10;
  }
  return k / 10;
}
string to_string(long long n) {
  if (!n) return "0";
  string s = "";
  int a, b;
  while (n > 0) {
    b = n % 10;
    s += (b + '0');
    n /= 10;
  }
  reverse(s.begin(), s.end());
  return s;
}
long long invvf[1000500], fact[1000500];
void pre() {
  long long i, j, n = 1000050;
  fact[0] = 1;
  fact[1] = 1;
  for (i = 2; i < n; i++) {
    fact[i] = fact[i - 1] * i;
    fact[i] %= 1000000007;
  }
  invvf[1] = 1;
  invvf[0] = 1;
  for (i = 2; i < n; i++) {
    invvf[i] = inv(fact[i]);
  }
}
long long ncr(long long n, long long r) {
  long long y = fact[n];
  y *= invvf[r];
  y %= 1000000007;
  y *= invvf[n - r];
  y %= 1000000007;
  return y;
}
int phi(int n) {
  int result = n;
  for (int i = 2; i * i <= n; i++) {
    if (n % i == 0) {
      while (n % i == 0) n /= i;
      result -= result / i;
    }
  }
  if (n > 1) result -= result / n;
  return result;
}
bool fun(string s) {
  int one = 0, zero = 0;
  for (int i = s.length() - 1; i >= 0; i--) {
    if (s[i] == '0')
      zero++;
    else
      one++;
    if (zero > one) return false;
  }
  return true;
}
long long ck(string s) {
  int n = s.size();
  int i;
  char ch = '9';
  char ch2 = '0';
  for (i = 0; i < n; i++) {
    ch = min(ch, s[i]);
    ch2 = max(ch2, s[i]);
  }
  long long a1 = ch - '0';
  long long a2 = ch2 - '0';
  return a1 * a2;
}
bool okk(string &s, long long val) {
  map<char, long long> M;
  int i, n = s.size();
  for (i = 0; i < val; i++) {
    M[s[i]]++;
  }
  if (M.size() == 3) return true;
  for (i = val; i < n; i++) {
    M[s[i - val]]--;
    if (M[s[i - val]] == 0) M.erase(s[i - val]);
    if (M.find(s[i]) == M.end())
      M[s[i]] = 1;
    else
      M[s[i]]++;
    if (M.size() == 3) return true;
  }
  if (M.size() == 3)
    return true;
  else
    return false;
}
void solve() {
  long long i, j = 0, r = 200, p, q, k = 0, d, y = 0, n, h = 100000000000000,
               flag = 0, m = 0, a = 1000000007, b = 1000000007, id, h1, h2, a1,
               b1, a2, w, x, u, f, l, c = 0, e, ans = 1e9;
  cin >> n;
  if (n % 10 == 6) {
    cout << "bon";
    return;
  }
  k = n % 10;
  if (k == 0 or k == 1 or k == 6 or k == 8)
    cout << "pon";
  else
    cout << "hon";
}
signed main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  while (t--) solve();
}
