Harryxun/stf_run huggingface dataset:
n=int(input())
x=list(map(int, input().split()))

ans=1
if 0 in x:
  print(0)
  break
  for i in x:
    ans=ans*i  
if ans>=1000000000000000000:
  ans=-1
print(ans)

### FIXED CODE ###

n=int(input())
x=list(map(int, input().split()))
 
ans=1
if 0 in x:
  ans=0
else:
  for i in x:
    ans=ans*i
    if ans>10**18:
      ans=-1
      break
print(ans)
# -*- coding: utf-8 -*-
n = int(input())
an = list(map(int,input().split()))
rate_bucket = [0] * 9
ret = 0
for a in an:
    rate_bucket[a//400]+=1
for i in rate_bucket[0:-1:]:
    if i > 0:
        ret+=1
print("{} {}".format(ret,ret+rate_bucket[-1]))


### FIXED CODE ###

# -*- coding: utf-8 -*-
n = int(input())
an = list(map(int,input().split()))
rate_bucket = [0] * 9
ret = 0
for a in an:
    rate_bucket[min(a//400,8)]+=1
for i in rate_bucket[0:-1:]:
    if i > 0:
        ret+=1
print("{} {}".format(max(ret,1),ret+rate_bucket[-1]))
def find(x):
    if par[x] < 0:
        return x
    else:
        par[x] = find(par[x])
        return par[x]

def same(x, y):
    if find(x) == find(y):
        return True
    else:
        return False

def unite(x, y):
    x = find(x)
    y = find(y)
    if x == y:
        return
    if rank[x] > rank[y]:
        x, y = y, x
    par[x] += par[y]
    par[y] = x

def uCnt(x):
    return -par[find(x)]

N, M, K = map(int, input().split())
par = [-1 for i in range(N)]
rank = [0] * N
frendCnt = [0] * N
bloc = [[] for _ in range(N)]
for i in range(N):
    a, b = map(int, input().split())
    a -= 1
    b -= 1
    frendCnt[a] += 1
    frendCnt[b] += 1
    unite(a, b)

for i in range(K):
    c, d = map(int, input().split())
    c -= 1
    d -= 1
    bloc[c].append(d)
    bloc[d].append(c)

for i in range(N):
    ans = uCnt(i) - len(bloc[i]) - frendCnt[i] - 1
    print(ans)

### FIXED CODE ###

import sys
input = sys.stdin.readline

n,m,k = map(int,input().split())

#Union Find

#xの根を求める
def find(x):
    if par[x] < 0:
        return x
    else:
        par[x] = find(par[x])
        return par[x]
#xとyの属する集合の併合
def unite(x,y):
    x = find(x)
    y = find(y)

    if x == y:
        return False
    else:
        #sizeの大きいほうがx
        if par[x] > par[y]:
            x,y = y,x
        par[x] += par[y]
        par[y] = x
        return True

#xとyが同じ集合に属するかの判定
def same(x,y):
    return find(x) == find(y)

#xが属する集合の個数
def size(x):
    return -par[find(x)]

#初期化
#根なら-size,子なら親の頂点
par = [-1]*n

num = [0]*n

for i in range(m):
    a,b = map(int,input().split())
    unite(a-1,b-1)
    num[a-1] += 1
    num[b-1] += 1

edge = [[] for i in range(n)]

for i in range(k):
    c,d = map(int,input().split())
    edge[c-1].append(d-1)
    edge[d-1].append(c-1)


for i in range(n):
    cnt = size(i) - num[i] - 1
    for e in edge[i]:
        if same(e,i):
            cnt -= 1
    print(cnt,end=' ')
N,S=int(input()),input()
a,b='',''
if N%2==0:
    for i in range(int(N/2)):
        a = a+S[i]
        b = S[len(S)-(i+1)]+b
    print('Yes' if a==b else: 'No')
else:
    print(No)

### FIXED CODE ###

N = int(input())
S = input()

b1,b2="",""

if N%2==1:
    print("No")
    exit()
else:
    for i in range(int(N/2)):
        b1=b1+S[i]
        b2=S[(len(S)-1)-i]+b2
if b1==b2:
    print("Yes")
else:
    print("No")
x**3


### FIXED CODE ###

x = input()
x = int(x)
print(x**3)
n,m=map(int,input().split())
a=list(int(input()) for i in range (m))
x=[0]*n
if a[0]==1:
    x[0]=0
else:
    x[0]=1

if m>=2:
	if a[0]!=2 and a[1]!=2:
		x[1]=x[0]+1

if m==1:
    if a[0]!=2:
	       x[1]=x[0]+1

if n>=3:
    for k in range(2,n):
        for z in range(m):
            x[a[z]-1]=0
        x[k]=x[k-2]+x[k-1]
else:
    x[2]=x[1]+x[0]
print(x[n-1]%1000000007)

### FIXED CODE ###

import sys

n,m=map(int,input().split())
broken=set(map(int,sys.stdin))

if n==1:
  print (1)
  sys.exit()
if n==2:
  if 1 not in broken and 2 not in broken:
    print (2)
  elif 2 in broken:
    print(0)
  elif 1 in broken and 2 not in broken:
    print(1)
  sys.exit()

way = [0]*n
if 1 not in broken:
  way[0]=1
if 1 not in broken and 2 not in broken:
  way[1]=2
elif 1 in broken and 2 not in broken:
  way[1]=1
for i in range(2,n):
  if i+1 in broken:
    way[i]=0
    continue
  way[i]=(way[i-1]+way[i-2])%1000000007
print(way[n-1])
# -*- coding: utf-8 -*-

N = int(input())
Z = []
for i in range(N):
    Z.append(list(map(int, input().split())))

dp = [[0] * N for _ in range(N)]
#print(dp)
dp[0] = Z[0]

for i in range(1,N):
    dp[i][0] = max(dp[i-1][1] + Z[i][0] , dp[i-1][2] + Z[i][0])
    dp[i][1] = max(dp[i-1][0] + Z[i][1] , dp[i-1][2] + Z[i][1])
    dp[i][2] = max(dp[i-1][0] + Z[i][2] , dp[i-1][1] + Z[i][2])
    #print(dp)

print(max(dp[-1]))


### FIXED CODE ###

# -*- coding: utf-8 -*-

N = int(input())
A = list(map(int, input().split()))

dp = [1000000000000] * N
dp[0] = 0
for i, h in enumerate(A):
    for j in (range(1,3)):
        if i+j < len(A):
            dp[i + j] = min(dp[i + j], dp[i] + abs(A[i] - A[i+j]))
        #print(dp)

print(dp[-1])
a = int(input())
b = int(input())
c = int(input())
k = int(input())
if a + b >= k:
    print(a)
else :
    print(a-(k-a-b))

### FIXED CODE ###

a,b,c,k = map(int,input().split())
if a+b >= k:
    if a > k:
        print(k)
    else:
        print(a)
else :
    print(a-(k-a-b))
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "a,b = map(int, input(), split())\n",
    "if a*b % 2:\n",
    "    ptint('Odd')\n",
    "else:\n",
    "    print()\n",
    "    "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}


### FIXED CODE ###

a, b = map(int, input().split())
if (a*b) % 2:
    print("Odd")
else:
    print("Even")
n = int(input())
sum = 0
tmp = n

while tmp > 0:
    sum += sum % 10
    tmp //= 10

if n % sum == 0:
    print("Yes")
else:
    print("No")

### FIXED CODE ###

def digitsum(n):
    ans = 0
    while n > 0:
        ans += n % 10
        n = n // 10
    return ans

N = int(input())
SumN = digitsum(N)
if N % SumN == 0:
    print("Yes")
else:
    print("No")
return 'Yes' if int(input()) >= 30 else 'No'

### FIXED CODE ###

print( 'Yes' if int(input().strip()) >=30 else 'No')
import math
a, b, x = map(int, input().split())

if 2*x <= (a**2)*b:
    print(math.degrees(math.atan((b**2)*a/(2*x))))
else :
    print(90-math.degrees(math.atan((a**3)/(2*((a**2)*b-x)))))

### FIXED CODE ###

import math
a, b, x = map(int, input().split())

if x == a**2*b:
    print(0)
elif 2*x <= (a**2)*b:
    print(math.degrees(math.atan((b**2)*a/(2*x))))
else :
    print(90-math.degrees(math.atan((a**3)/(2*((a**2)*b-x)))))
num = input().split()

print(num[1]) if int(num[0]) >= 3200 else print("red")

### FIXED CODE ###

num = int(input())
col = input()

if num >= 3200:
  print(col)
else:
  print("red")
X,A = map(int,input().split())
if X < A :
    print(0)
elif X >= A
    print(10)

### FIXED CODE ###

X,A = map(int,input().split())
if X < A :
    print(0)
elif X >= A:
    print(10)
a=[]
while True:
    if [0,0]=[int(x) for x in input().split()]:
        break
    else:
        [a,b]=sorted([int(x) for x in input().split()])
        print("a b c")

### FIXED CODE ###

while True:
    list=[int(x) for x in input().split()]
    if any(list):
        [a,b]=sorted(list)
        print(str(a)+" "+str(b))
    else:
        break
import math


def combi(a, b):
    ans = math.factorial(a) / (math.factorial(a - b) * math.factorial(b))
    return ans

N=int(input())
S=[0]*5

for i in range(N):
    s=input()
    temp=s[0]
    if temp=="M":
        S[0]+=1
    elif temp=="A":
        S[1]+=1
    elif temp=="R":
        S[2]+=1
    elif temp=="C":
        S[3]+=1
    elif temp=="H":
        S[4]+=1

c=0
N=0
for i in range(5):
    N+=S[i]
    if S[i]!=0:
        c+=1

if c<=2:
    print(0)

else:

    for i in range(5):
        if S[i]>=3:
            NG=combi(S[i],3)+combi(S[i],2)*(N-S[i])
        elif S[i]==2:
            NG=combi(S[i],2)*(N-S[i])
    print(int(combi(N,3)-NG))





### FIXED CODE ###

import math


def combi(a, b):
    ans = math.factorial(a) / (math.factorial(a - b) * math.factorial(b))
    return ans


N = int(input())
S = [0] * 5

for i in range(N):
    s = input()
    temp = s[0]
    if temp == "M":
        S[0] += 1
    elif temp == "A":
        S[1] += 1
    elif temp == "R":
        S[2] += 1
    elif temp == "C":
        S[3] += 1
    elif temp == "H":
        S[4] += 1

c = 0
N = 0
for i in range(5):
    N += S[i]
    if S[i] != 0:
        c += 1

if c <= 2:
    print(0)

else:
    ans = 0
    for i in range(3):
        for j in range(i + 1, 4):
            for k in range(j + 1, 5):
                ans += S[i] * S[j] * S[k]
    print(ans)
import math
k = int(input())
ans = 0
for i in range(1,k+1):
  for j in range(1,k+1):
    for k in range(1,k+1):
      ans += math.gcd(i,j,k)
print(ans)

### FIXED CODE ###

import math
k = int(input())
ans = 0
for i in range(1,k+1):
  for j in range(1,k+1):
    g = math.gcd(i,j)
    for k in range(1,k+1):
      ans += math.gcd(g,k)
print(ans)
N = int(input())
B = np.array(input().split(), dtype=int)[::-1]

et = 0

ret += B[0]

i = 0
while i < N-2:
    ret += B[i] if B[i] < B[i+1] else B[i+1]
    i+=1
print(ret)

### FIXED CODE ###

import numpy as np
N = int(input())
B = np.array(input().split(), dtype=int)[::-1]

ret = 0

ret += B[0]

i = 0
while i < N-2:
    ret += B[i] if B[i] < B[i+1] else B[i+1]
    i+=1

ret += B[-1]
print(ret)
INFTY = 10**10
N,W = map(int,input().split())
A = [list(map(int,input().split())) for _ in range(N)]
w = A[0][0]
C = {i:0 for i in range(4)}
for i in range(N):
    C[A[i][0]-w] += 1
dp = [[[[[-INFTY for _ in range(C[3]+1)] for _ in range(C[2]+1)] for _ in range(C[1]+1)] for _ in range(C[0]+1)] for _ in range(N+1)]
for n in range(N+1):
    dp[n][0][0][0][0] = 0
dp[1][1][0][0][0] = A[0][1]
for n in range(2,N+1):
    for i in range(C[0]+1):
        for j in range(C[1]+1):
            for k in range(C[2]+1):
                for l in range(C[3]+1):
                    dp[n][i][j][k][l] = dp[n-1][i][j][k][l]
                    if A[n-1][0]-w==0:
                        if i>=1: dp[n][i][j][k][l]= max(dp[n][i][j][k][l],dp[n-1][i-1][j][k][l]+A[n-1][1])
                    elif A[n-1][0]-w==1:
                        if j>=1: dp[n][i][j][k][l]= max(dp[n][i][j][k][l],dp[n-1][i][j-1][k][l]+A[n-1][1])
                    elif A[n-1][0]-w==2:
                        if k>=1: dp[n][i][j][k][l]= max(dp[n][i][j][k][l],dp[n-1][i][j][k-1][l]+A[n-1][1])
                    elif A[n-1][0]-w==3:
                        if l>=1: dp[n][i][j][k][l]= max(dp[n][i][j][k][l],dp[n-1][i][j1][k][l-1]+A[n-1][1])
vmax = 0
for i in range(C[0]+1):
    for j in range(C[1]+1):
        for k in range(C[2]+1):
            for l in range(C[3]+1):
                if (i+j+k+l)*w+j+2*k+3*l<=W:
                    vmax = max(vmax,dp[N][i][j][k][l])
print(vmax)

### FIXED CODE ###

INFTY = 10**10
N,W = map(int,input().split())
X = [list(map(int,input().split())) for _ in range(N)]
dp = [[[-INFTY for _ in range(3*(N-1)+1)] for _ in range(N+1)] for _ in range(N+1)]
for i in range(N+1):
    dp[i][0][0] = 0
for i in range(1,N+1):
    for j in range(1,i+1):
        for k in range(3*(N-1)+1):
            dp[i][j][k] = dp[i-1][j][k]
            if k>=X[i-1][0]-X[0][0]:
                dp[i][j][k] = max(dp[i][j][k],dp[i-1][j-1][k-X[i-1][0]+X[0][0]]+X[i-1][1])
cmax = 0
for j in range(1,N+1):
    for k in range(3*(N-1)+1):
        if j*X[0][0]+k<=W:
            cmax = max(cmax,dp[N][j][k])
print(cmax)
def divisor(n): 
    i = 1
    table = []
    while i * i <= n:
        if n % i == 0:
            table.append(i)
            table.append(n//i)
        i += 1
    table = list(set(table))
    return table

A, B, K = map(int, input().split(" "))

a_divisor = divisor(A)
b_divisor = divisor(B)

print(sorted(list(set(a_divisor) & set(b_divisor)), reverse=True)[K])

### FIXED CODE ###

def divisor(n): 
    i = 1
    table = []
    while i * i <= n:
        if n % i == 0:
            table.append(i)
            table.append(n//i)
        i += 1
    table = list(set(table))
    return table

A, B, K = map(int, input().split(" "))

a_divisor = divisor(A)
b_divisor = divisor(B)

print(sorted(list(set(a_divisor) & set(b_divisor)), reverse=True)[K-1])
x=int(input())
ans=0
for i in range(1,32):
  for j in range(2,11):
    if pow(i,j)=<x:
      ans=max(pow(i,j),ans)
print(ans)

### FIXED CODE ###

x=int(input())
ans=0
for i in range(1,32):
  for j in range(2,11):
    if pow(i,j)<=x:
      ans=max(pow(i,j),ans)
print(ans)
x,a = map(int,input().split())
if x < a:
  print(0)
  else : 
    print(10)

### FIXED CODE ###

x,a = map(int,input().split())
if x < a:
  print(0)
else : 
  print(10)
N = int(input())
A = list(map(int,input().split()))
l=0; r=0; res=0; sum_=0; ans=[]
for _ in range(10**6)
    if l == N and r == N:
        break
    note = r
    for i in range(r,N):
        if res ^ A[i] == sum_ + A[i]:
            r += 1
            res += A[i]
            sum_ += A[i]
        else:
            break
    length = r - l
    f = note == r
    if f is False:
        for i in range(l,r+1):
            for j in range(i+1,r+1):
                ans.append((i,j))
    if length == 0:
        r += 1
    else:
        res -= A[l]
        sum_ -= A[l]
    l += 1
ans = len(list(set((ans))))
print(ans)

### FIXED CODE ###

N = int(input())
A = list(map(int,input().split()))
r = 0; sum_ = 0; res = 0; ans = 0
for l in range(N+1):
    for i in range(r,N):
        if res ^ A[i] == sum_ + A[i]:
            r += 1
            res += A[i]
            sum_ += A[i]
        else:
            break
    length = r - l
    ans += length
    if length == 0:
        r += 1
    else:
        res -= A[l]
        sum_ -= A[l]

print(ans)
s = input()
l = len(s)
if s[l - 1] == s:
	l.append(es)
else:
 	l.append(s)
print(s)

### FIXED CODE ###

s = input()
if s[-1] == "s":
	s += "es"
else:
 	s += "s"
print(s)
N=int(input().split())
d=[input() for i in range(N)]
d.sort(reverse=True)
for i in range(1,N):
    if d[i-1]>d[i]:
        sum+=1
print(sum)

### FIXED CODE ###

N=int(input())
d=[input() for i in range(N)]
sum=1
d.sort(reverse=True)
for i in range(1,N):
    if d[i-1]>d[i]:
        sum+=1
print(sum)
1. 学部学科／研究科専攻の中身（大学の紹介ではなく、自分が大学で勉強していることの説明）
2. 自分の中心テーマ、素材、対象（専門家向けバージョンと、専門家以外でもわかるバージョンがあると便利）
3. その勉強を通じて得られる成果、結論、応用、実用（特に基礎系の専門の場合、「応用」を幅広くとらえることが欠かせない）
4. ユニークさ（独自の視点、手法、対象、成功率（失敗率））

### FIXED CODE ###

# coding: utf-8
# Here your code !

s = input()
if(len(s) < 4) : print("No")
else:
    if(s[0:4] == "YAKI") : print("Yes")
    else:print("No")
n, m = map(int, input().split())
H = list(map(int, input().split()))
S = []
c = 0
b = []
 
for i in range(m):
    S.append(list(map(int, input().split())))
 
for j in range(n):
    for k in range(m):
        if j in S[k]:
            if S[k][0] == j:
                if H[S[k][0]] < H[S[k][1]]:
                    c += 1
            else:
                if H[S[k][0]] > H[S[k][1]]:
                    c + = 1
    if c == 0:
        b.append(j)
    c = 0
 
print(len(b))

### FIXED CODE ###

n, m = map(int, input().split())
h = list(map(int, input().split()))
sore = [[0] for i in range(n)]
for i in range(m):
    road = list(map(int, input().split()))
    sore[road[0]-1].append(h[road[1]-1])
    sore[road[1]-1].append(h[road[0]-1])
ans = 0
for i in range(n):
    if h[i] > max(sore[i]):
        ans+=1
print(ans)
a = int(input())
b = int(input())
if max(a,b) <= 6:
  print('Yay!')
else:
  print(':(')

### FIXED CODE ###

a,b = map(int,input().split())
if max(a,b) <= 8:
  print('Yay!')
else:
  print(':(')
N=int(input())
a=[]
b=[]
for i in range(N):
  x,y=input().split()
  a=a.append(float(x))
  b=b.append(y)
total=0
for j in range(N):
  if b[j]=='JPY':
    total = total+ a[j]
  else:
    total = total+380000.0*a[j]
print(total)


### FIXED CODE ###

N=int(input())
a=[]
b=[]
for i in range(N):
  x,y=input().split()
  a.append(float(x))
  b.append(y)
total=0
for j in range(N):
  if b[j]=='JPY':
    total += a[j]
  else:
    total += 380000.0*a[j]
print(total)
n = int(input())
a = list(map(int, input(split())))

ans = 1e9
for p in a:
  sub = 0
  for q in a:
    sub += pow(p - q, 2)
  ans = min(ans, sub)

print(ans)

### FIXED CODE ###

n = int(input())
a = list(map(int, input().split()))

ans = 1e9
for p in range(-100, 101):
  sub = 0
  for q in a:
    sub += pow(p - q, 2)
  ans = min(ans, sub)

print(ans)
import numpy as np

N, M = map(int, input().split())
A = []
B = []

for i in range(0, N):
    a, b = np.array(list(map(float, input().split())))
    A.append(a)
    B.append(b)

cnt = 0
sum = 0
flag = 0
inf = float('inf')
arrayA = np.array(A)
arrayB = np.array(B)
for j in range(0, N):
    idx = A.index(min(arrayA))
    pay = arrayA[idx]
    num = arrayB[idx]
    arrayA[idx]=inf
    if cnt + num < M :
        cnt += num
        sum += pay*num
    else :
        diff = int(M - cnt)
        for t in range(0, diff):
            sum += pay
            cnt += 1
            if cnt == M :
                flag = 1
                print(int(sum))
                break
    if flag == 1:
        break


### FIXED CODE ###

H, W = map(int, input().split())
h, w = map(int, input().split())
all = H * W
print(all - (h*W + w * H - h*w))
n = int(input())
array = list(map(int, input().strip().split(" ")))
ans = [0]*n

for i in range(1, n+1):
    ans[array[i] - 1] = i + 1 



print(" ".join(ans))


### FIXED CODE ###

n = int(input())
array = list(map(int, input().strip().split(" ")))
ans = [0]*n

for i in range(n):
    ans[array[i] - 1] = str(i + 1 )



print(" ".join(ans))
a=input()

def prime(n):
  for i in range(2,n):
    if n%i == 0:
      return False
    return True
  
while prime(a) == False:
  a += 1

print(a)
    

### FIXED CODE ###

a=int(input())

def prime(n):
  if n <= 1:
    return False
  else:
    for i in range (2,n):
      if n%i == 0:
        return False
    return True
        
while prime(a)==False:
    a += 1

print(a)
a,b,c,d=map(int,input(),split())
e=(d-b)
f=(c-a)
print(c-e,d+f,a-e,b+f)

### FIXED CODE ###

a,b,c,d=map(int,input().split())
e=(d-b)
f=(c-a)
print(c-e,d+f,a-e,b+f)
import sys
sys.setrecursionlimit(4100000)

import logging
import math

logging.basicConfig(level=logging.DEBUG)

logger = logging.getLogger(__name__)


def resolve():
    a, b, x = [float(x) for x in sys.stdin.readline().split()]

    logger.debug([a, b, x])

    y_0 = 2 * x / a**2
    logger.debug(y_0)

    if y_0 >= b:
        theta = 90 - math.degrees(math.atan((a / 2) * (1 / (b - x / a**2))))
        print(theta)
    else:
        theta = 90 - math.degrees(math.atan(2 * x / (a * (b**2))))
        print(theta)


if __name__ == "__main__":
    resolve()

# AtCoder Unit Test で自動生成できる, 最後のunittest.main は消す
# python -m unittest template/template.py
# pypy3 -m unittest template/template.py
import sys
from io import StringIO
import unittest


class TestClass(unittest.TestCase):
    def assertIO(self, input, output):
        stdout, stdin = sys.stdout, sys.stdin
        sys.stdout, sys.stdin = StringIO(), StringIO(input)
        resolve()
        sys.stdout.seek(0)
        out = sys.stdout.read()[:-1]
        sys.stdout, sys.stdin = stdout, stdin
        self.assertEqual(out, output)

    def test_入力例_1(self):
        input = """2 2 4"""
        output = """45.0000000000"""
        self.assertIO(input, output)

    def test_入力例_2(self):
        input = """12 21 10"""
        output = """89.7834636934"""
        self.assertIO(input, output)

    def test_入力例_3(self):
        input = """3 1 8"""
        output = """4.2363947991"""
        self.assertIO(input, output)


if __name__ == "__main__":
    unittest.main()

### FIXED CODE ###

import sys
sys.setrecursionlimit(4100000)

import logging
import math

logging.basicConfig(level=logging.DEBUG)

logger = logging.getLogger(__name__)


def resolve():
    a, b, x = [float(x) for x in sys.stdin.readline().split()]

    logger.debug([a, b, x])

    y_0 = 2 * x / a**2
    logger.debug(y_0)

    if y_0 >= b:
        if b - x / a**2 == 0:
            print(0)
        else:
            theta = 90 - math.degrees(math.atan(
                (a / 2) * (1 / (b - x / a**2))))
            print(theta)
    else:
        theta = 90 - math.degrees(math.atan(2 * x / (a * (b**2))))
        print(theta)


if __name__ == "__main__":
    resolve()

# AtCoder Unit Test で自動生成できる, 最後のunittest.main は消す
# python -m unittest template/template.py
# pypy3 -m unittest template/template.py
import sys
from io import StringIO
import unittest


class TestClass(unittest.TestCase):
    def assertIO(self, input, output):
        stdout, stdin = sys.stdout, sys.stdin
        sys.stdout, sys.stdin = StringIO(), StringIO(input)
        resolve()
        sys.stdout.seek(0)
        out = sys.stdout.read()[:-1]
        sys.stdout, sys.stdin = stdout, stdin
        self.assertEqual(out, output)

    def test_入力例_1(self):
        input = """2 2 4"""
        output = """45.0000000000"""
        self.assertIO(input, output)

    def test_入力例_2(self):
        input = """12 21 10"""
        output = """89.7834636934"""
        self.assertIO(input, output)

    def test_入力例_3(self):
        input = """3 1 8"""
        output = """4.2363947991"""
        self.assertIO(input, output)
#B

def factorize(n):
    b = 2
    fct = []
    while b * b <= n:
        while n % b == 0:
            n //= b
            fct.append(b)
        b = b + 1
    if n > 1:
        fct.append(n)
    return fct


n = int(input())

f = factorize(n)
#print(f)
f.sort()
#print(f)

ans = False


l = len(f)
dex = 0
a = f[0]
while l > 2 and dex < len(f)-1:
    if a * f[dex+1] < 10:
        dex += 1
        a *= f[dex]
        l -= 1
    else:
        break

b_dex = dex+1
b = 1
while b_dex < len(f):
    b *= f[b_dex]
    b_dex += 1

#print(a,b)
if a < 10 and b < 10:
        ans = True

if ans:
    print('Yes')
else:
    print('No')


### FIXED CODE ###

#B

def factorize(n):
    b = 2
    fct = []
    while b * b <= n:
        while n % b == 0:
            n //= b
            fct.append(b)
        b = b + 1
    if n > 1:
        fct.append(n)
    return fct


def factorization(n):
    arr = []
    temp = n
    for i in range(2, int(-(-n**0.5//1))+1):
        if temp%i==0:
            cnt=0
            while temp%i==0:
                cnt+=1
                temp //= i
            arr.append([i, cnt])

    if temp!=1:
        arr.append([temp, 1])

    if arr==[]:
        arr.append([n, 1])

    return arr



n = int(input())

g = factorization(n)

#print(g)
f = []
for x in g:
    for y in range(1,x[1]+1):
        f.append(x[0])

#print(f)
f.sort()
#print(f)

ans = False


l = len(f)
dex = 0
a = f[0]
while l > 2 and dex < len(f)-1:
    if a * f[dex+1] < 10:
        dex += 1
        a *= f[dex]
        l -= 1
    else:
        break

b_dex = dex+1
b = 1
while b_dex < len(f):
    b *= f[b_dex]
    b_dex += 1

#print(a,b)
if a < 10 and b < 10:
        ans = True

if ans:
    print('Yes')
else:
    print('No')
n = int(input())
if n >= 100:
  n[2] = num1
  if num1 == 2 or num1 == 4 or num1 == 5 or num1 == 7 or num1 == 9:
    print("pon")
  elif num1 == 0 or num1 == 1 or num1 == 6 or num1 == 8:
    print("hon")
  else:
    print("bon")
elif 100 > n >= 10:
  n[1] = num2
  if num2 == 2 or num2 == 4 or num2 == 5 or num2 == 7 or num2 == 9:
    print("pon")
  elif num2 == 0 or num2 == 1 or num2 == 6 or num2 == 8:
    print("hon")
  else:
    print("bon")
else:
  n = num3
  if num3 == 2 or num3 == 4 or num3 == 5 or num3 == 7 or num3 == 9:
    print("pon")
  elif num3 == 0 or num3 == 1 or num3 == 6 or num3 == 8:
    print("hon")
  else:
    print("bon")
  
  
  
  
  
  

### FIXED CODE ###

n = str(input())
length = int(len(n))
num = int(n[length-1])
if num == 2 or num == 4 or num == 5 or num == 7 or num == 9:
  print("hon")
elif num == 0 or num == 1 or num == 6 or num == 8:
  print("pon")
else:
  print("bon")