Harryxun/stf_run huggingface dataset:
from decimal import Decimal
from math import sqrt
a,b,c=map(int,input().split())
if Decimal(sqrt(a))+Decimal(sqrt(b))<Decimal(sqrt(c)):
  print("Yes")
else:
  print("No")
  

### FIXED CODE ###

L=[1, 1, 1, 2, 1, 2, 1, 5, 2, 2, 1, 5, 1, 2, 1, 14, 1, 5, 1, 5, 2, 2, 1, 15, 2, 2, 5, 4, 1, 4, 1, 51]
print(L[int(input())-1])
import sys

S = input()
c = 0


op = len(S) - 1  # すき間の個数

for i in range(2 ** op):
  T = ""
  for j in range(op_cnt):
    T += S[j]
    if ((i >> j) & 1):
      T += "+"
    else:
      T += "-"
  T += S[op_cnt]
  if eval(T) == 7:
    print(T+"=7")
    sys.exit()

### FIXED CODE ###

import sys

S = input()
c = 0


op = len(S) - 1  # すき間の個数

for i in range(2 ** op):
  T = ""
  for j in range(op):
    T += S[j]
    if ((i >> j) & 1):
      T += "+"
    else:
      T += "-"
  T += S[op]
  if eval(T) == 7:
    print(T+"=7")
    sys.exit()
N = int(input())
A = []
 
for _ in range(N):
    A.append(int(input())
    
for i in range(N):
    if A[i] >= a:
        b = a
        a = A[i]
    elif A[i] > b:
        b = A[i]
 
for i in range(N):
    if A[i] < a:
        print(a)
    else:
        print(b)

### FIXED CODE ###


r = int(input())
print(3*r*r)
N = int(input())
t, x, y = 0, 0, 0

for _ in range(N):
    next_t, next_x, next_y = [int(__) for __ in input().split()]

    delta_t = next_t - t
    distance = abs(next_x - x) + abs(next_y - y)

    if distance > delta_t:
        print("No")
        sys.exit()

    if (delta_t - distance) % 2 != 0:
        print("No")
        sys.exit()

    t, x, y = next_t, next_x, next_y

print("Yes")

### FIXED CODE ###

t, x, y = 0, 0, 0
for i in range(int(input())):
    next_t, next_x, next_y = map(int, input().split())
    diff = abs(x - next_x) + abs(y - next_y)
    if diff > (next_t - t) or (diff - (next_t - t)) % 2 == 1:
        print("No")
        exit(0)
    t, x, y, = next_t, next_x, next_y
print("Yes")
N, K = map(int, input().split())
A = list(map(int, input().split()))

"""
1からのループだけを考えれば良い
"""

i = A[0]
ok = True
R = [1]
seen = [0] * N
seen[0] = 1
count = 1

while ok:
    count += 1
    seen[i-1] += count
    R.append(i)
    i = A[i-1]
    # 訪れたことがあれば
    if seen[i-1] != 0:
        k = seen[i-1]
        loop = R[k-1:]
        remain = R[:k-1]
        ok = False

L = len(loop)

if K < len(remain):
    print(remain[K])
else:
    print(loop[(K - len(remain)) % L])


### FIXED CODE ###

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

"""
1からのループだけを考えれば良い
"""

i = A[0]
ok = True
R = [1]
seen = [0] * N
seen[0] = 1
count = 1

if A[0] == 1:
    print(1)
    exit()

while ok:
    count += 1
    seen[i-1] += count
    R.append(i)
    i = A[i-1]
    # 訪れたことがあれば
    if seen[i-1] != 0:
        k = seen[i-1]
        loop = R[k-1:]
        remain = R[:k-1]
        ok = False

L = len(loop)

if K < len(remain):
    print(remain[K])
else:
    print(loop[(K - len(remain)) % L])
# -*- coding: utf-8 -*-
import sys
N,M=list(map(int,raw_input().split()))

nl=[[] for i in range(N+1)]
for i in range(M):
	x,y=map(int,raw_input().split())
	nl[x].append(y)
	nl[y].append(x)	
#print nl


def dfs(v):
	F[v]=1
	for i in nl[v]:
		if color[v]=="w" and color[i]==0:
			color[i]="b"
		elif color[v]=="b" and color[i]==0:
			color[i]="w"				
		elif color[v]==color[i]:
			#２部グラフではない
			print N*(N-1)/2-M
			sys.exit()
		else:
			continue
		#print v,i,color,F
		
		if F[i]==0:
			dfs(i)


F=[0]*(N+1)
color=[0]*(N+1)
color[1]="w"
dfs(1)

#２部グラフの場合
print color.count("b")*color.count("w")-M




### FIXED CODE ###

# -*- coding: utf-8 -*-
import sys
sys.setrecursionlimit(10**7)
N,M=list(map(int,raw_input().split()))

nl=[[] for i in range(N+1)]
for i in range(M):
	x,y=map(int,raw_input().split())
	nl[x].append(y)
	nl[y].append(x)	
#print nl


def dfs(v):
	F[v]=1
	for i in nl[v]:
		if color[v]=="w" and color[i]==0:
			color[i]="b"
		elif color[v]=="b" and color[i]==0:
			color[i]="w"				
		elif color[v]==color[i]:
			#２部グラフではない
			print N*(N-1)/2-M
			sys.exit()
		else:
			continue
		#print v,i,color,F
		
		if F[i]==0:
			dfs(i)


F=[0]*(N+1)
color=[0]*(N+1)
color[1]="w"
dfs(1)

#２部グラフの場合
print color.count("b")*color.count("w")-M
from collections import Counter
# python template for atcoder1
import sys
sys.setrecursionlimit(10**9)

B = int(input())
Lb = [input() for _ in range(B)]
R = int(input())
Lr = [input() for _ in range(R)]

Cb = Counter(Lb)
Cr = Counter(Lr)

cand = []
for i, v in Cb.items():
    cand.append(v-Cr[i])
ans = max(list(filter(lambda x: x > 0, cand)))
print(ans)


### FIXED CODE ###

from collections import Counter

N = Counter([input() for _ in range(int(input()))])
M = Counter([input() for _ in range(int(input()))])
print(max(0, max(N[key]-M[key] for key in N.keys())))
N = int(input())
def factorize(n, already):
    arr = []
    temp = n
    for i in range(2, int(n**0.5)+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])

    ret = []
    for a, b in arr:
        for i in range(1, b+1):
            ret.append(a*i)

    ret = set(ret) - set(already)
    return list(ret)[0]

already = []
z = 0
n = N
ans = 0
while n >= z:
    z = factorize(n, already)
    n = n // z
    already.append(z)
    ans += 1
    if n == 1:
        break
print(ans)

### FIXED CODE ###

N = int(input())
def factorize(n):
    arr = []
    temp = n
    for i in range(2, int(n**0.5)+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

if N == 1:
    print(0); exit()

f = factorize(N)
ans = 0
for p, i in f:
    j = 0
    while i > j:
        j += 1
        i -= j
        ans += 1
print(ans)
(base) C:\Users\toshi\AtCorder>python abc.py
2
hon

(base) C:\Users\toshi\AtCorder>
(base) C:\Users\toshi\AtCorder>python abc.py
3
bon

(base) C:\Users\toshi\AtCorder>python abc.py
4
hon

(base) C:\Users\toshi\AtCorder>python abc.py
5
hon

(base) C:\Users\toshi\AtCorder>python abc.py
6
pon

(base) C:\Users\toshi\AtCorder>python abc.py
7
hon

(base) C:\Users\toshi\AtCorder>python abc.py
8
pon

(base) C:\Users\toshi\AtCorder>python abc.py
9
hon

(base) C:\Users\toshi\AtCorder>

### FIXED CODE ###

n = int(input())%10
if n==0:
    print("pon")
if n==1:
    print("pon")
if n==2:
    print("hon")
if n==3:
    print("bon")
if n==4:
    print("hon")
if n==5:
    print("hon")
if n==6:
    print("pon")
if n==7:
    print("hon")
if n==8:
    print("pon")
if n==9:
    print("hon")
N = int(input())
A = list(map(int, input().split()))
cnt = 0

while(True):
    
    if all(a % 2 == 0 for a in A):
        A = list(map(lambda x: x / 2, A))
        cnt += 1
    
    else: break

print(cnt)

### FIXED CODE ###

print(input().count('1'))
A, B = input().split()


A = int(A)
x = int(B[0]) * 100
y = int(B[1]) * 10
z = int(B[2]) * 1

C = x + y + z

print((A * C) // 100)


### FIXED CODE ###

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

print(A * B)
n = input()
a = list(map(int, input().split()))
s = 0
for i in range(n):
  s += 1/a[i]

print(1/s)

### FIXED CODE ###

n = int(input())
a = list(map(int, input().split()))
s = 0
for i in range(n):
  s += 1/a[i]

print(1/s)
N,M,L=map(int,input().split())
A=[[] for i in range(N)]
for i in range(M):
    a,b,c=map(int,input().split())
    A[a-1].append((b-1,c))
    A[b-1].append((a-1,c))
d=[[100000000001]*N for i in range(N)]
for i in range(N):
    d[i][i]=0
for i in range(N):
    for to,cost in A[i]:
        d[i][to] = cost
for k in range(N):
    for i in range(N):
        for j in range(N):
            if d[i][k] != 100000000001 and d[k][j] != 100000000001:
                d[i][j] = min(d[i][j], d[i][k] + d[k][j])
B=[[] for i in range(N)]
for i in range(N):
    for j in range(N):
        if d[i][j]<=L:
            B[i].append((j,1))
times=[[100000000001]*N for i in range(N)]
for i in range(N):
    times[i][i]=0
for i in range(N):
    for to,cost in B[i]:
        times[i][to] = cost
for k in range(N):
    for i in range(N):
        for j in range(N):
            if times[i][k] != 100000000001 and times[k][j] != 100000000001:
                times[i][j] = min(times[i][j], times[i][k] + times[k][j])
Q=int(input())
for i in range(Q):
    s,t=map(int,input().split())
    if times[s-1][t-1]!=100000000001
    	print(times[s-1][t-1]-1)
    else:
      	print(-1)

### FIXED CODE ###

N,M,L=map(int,input().split())
A=[[] for i in range(N)]
for i in range(M):
    a,b,c=map(int,input().split())
    A[a-1].append((b-1,c))
    A[b-1].append((a-1,c))
d=[[100000000001]*N for i in range(N)]
for i in range(N):
    d[i][i]=0
for i in range(N):
    for to,cost in A[i]:
        d[i][to] = cost
for k in range(N):
    for i in range(N):
        for j in range(N):
            if d[i][k] != 100000000001 and d[k][j] != 100000000001:
                d[i][j] = min(d[i][j], d[i][k] + d[k][j])
B=[[] for i in range(N)]
for i in range(N):
    for j in range(N):
        if d[i][j]<=L:
            B[i].append((j,1))
times=[[100000000001]*N for i in range(N)]
for i in range(N):
    times[i][i]=0
for i in range(N):
    for to,cost in B[i]:
        times[i][to] = cost
for k in range(N):
    for i in range(N):
        for j in range(N):
            if times[i][k] != 100000000001 and times[k][j] != 100000000001:
                times[i][j] = min(times[i][j], times[i][k] + times[k][j])
Q=int(input())
for i in range(Q):
    s,t=map(int,input().split())
    if times[s-1][t-1]!=100000000001:
    	print(times[s-1][t-1]-1)
    else:
      	print(-1)
n=int(input())
aa=[]
bb=[]
for i in range(n):
    a,b=map(int,input().split())
    aa.append(a)
    bb.append(b)
aa.sort()
bb.sort()
if(n%2==0):
    print(b[n//2-1]+b[n//2]-a[n//2]-a[n//2-1]+1)
else:
    print(b[n//2]-a[n//2]+1)

### FIXED CODE ###

n=int(input())
aa=[]
bb=[]
for i in range(n):
    a,b=map(int,input().split())
    aa.append(a)
    bb.append(b)
aa.sort()
bb.sort()
if(n%2==0):
    print(bb[n//2-1]+bb[n//2]-aa[n//2]-aa[n//2-1]+1)
else:
    print(bb[n//2]-aa[n//2]+1)
import re
 s = input()
 p = re.compile(r'^([^L][^R])*[^L]?$')
 if p.match(s):

 print("Yes")
 else:
 print("No")


### FIXED CODE ###

import re

s = input()
p = re.compile(r'^([^L][^R])*[^L]?$')
if p.match(s):
	print("Yes")
else:
	print("No")
def reversed_num(num):
  num_len=len(bin(num))-2
  f=2**num_len-1
  return num^f
n=int(input())
number=list(map(int,input().split()))
number.sort()
number.reverse()
goal=[]
for i in number:
  if i != reversed_num(i)+1:
    goal.append(reversed_num(i)+1)
    number.remove(reversed_num(i)+1)
print(len(set(number)&set(goal)))


### FIXED CODE ###

import bisect
def reversed_num(num):
  num_len=len(bin(num))-2
  f=2**num_len-1
  return num^f
n=int(input())
number=list(map(int,input().split()))
number.sort()
count=0
while len(number)>0:
  k=number.pop()
  if len(number)==0:
    break
  if k==int(k):
    x=reversed_num(k)+1
    y=bisect.bisect_left(number,x)
    if x>number[-1]:
      y-=1
    if number[y] ==x:
      number[y]-=0.5
      count+=1
print(count)
# -*- coding: utf-8 -*-

n = int(input())
a = int(input())

if a == 0 and n%500 != 0:
    print("No")
elif n%500==0:
    print("Yes")
elif n%500 =< a:
    print("Yes")
else:
    pass

### FIXED CODE ###

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

n = int(input())
a = int(input())

if n%500==0:
    print("Yes")
elif n%500 < a:
    print("Yes")
elif n%500 == a:
    print("Yes")
elif n%500 > a:
    print("No")
else:
    pass
a = input()
i = 1
while (i<=a):
	i =i * 2
print(i/2)
	


### FIXED CODE ###

a = int(input())
i = 1
while(i<=a):
	i *= 2
print(int(i/2))
a, b, c = map(int, input().split)
if a < b < c:
    print("Yes")
else:
    print("No")

### FIXED CODE ###

a,b,c = map(int,input().split())
if a<b<c:
    print("Yes")
else:
    print("No")
h, _ = map(int, input().split())
for i in range(h):
  a = input()
  print(a)*2

### FIXED CODE ###

h, _ = map(int, input().split())
for i in range(h):
  a = input()
  print(a)
  print(a)
n = int(input())
t, a =map(int, input().split())
h = list(map(int, input().split()))
d_degree = 100000j
ans = 0
for i in range(n):
    degree = t - h[i]*0.006
    if d_degree > abs(a - degree):
        d_degree = abs(a - degree)
        ans = i+1
print(ans)


### FIXED CODE ###

n = int(input())
t, a =map(int, input().split())
h = list(map(int, input().split()))
d_degree = 100000
ans = 0
for i in range(n):
    degree = t - h[i]*0.006
    if d_degree > abs(a - degree):
        d_degree = abs(a - degree)
        ans = i+1
print(ans)
a = input()
 
if str.isupper(a):
  print('A')
else :
  ptint('a')

### FIXED CODE ###

a = input()
 
if str.isupper(a):
  print('A')
else :
  print('a')
def flip(N, M, K, Mnum, Nnum, black):
    print('count: ', Mnum+Nnum)
    print(black)
    if black < 0 or black > K:
        return False
    if black == K:
        return True

    return flip(N, M, K, Mnum+1, Nnum, black+M-Nnum) or flip(N, M, K, Mnum, Nnum+1, black+N-Nnum)

if __name__ == '__main__':
    inputs = input('> ').split()
    if flip(int(inputs[0]), int(inputs[1]), int(inputs[2]), 0, 0, 0):
        print('Yes')
    else:
        print('No')


### FIXED CODE ###

N, M, k = tuple(int(i) for i in input().split(' '))
ans = 'No'
for a in range(N + 1):
    for b in range(M + 1):
        if M * a + N * b - 2 * a * b == k:
            ans = 'Yes'
            break
print(ans)
cout =0
S= map(input().split())
T= map(input().split())

count=0
for i in range(3):
    if S[i] == T[i]:
       count += 1
print(count)

### FIXED CODE ###

S = input()
T = input()

n = len(S)
cont = 0
for i in range(n):
    if S[i] == T[i]:
        cont += 1
print(cont)
H,W = map(int, input().split())
s = [input() for _ in range(H)]

import sys
for j in range(H):
    for i in range(W):
        if s[j][i] =='#':
            if j+1<W and i+1<H and 0<=j-1 and 0<=i-1:
                if (s[j+1][i]=='#' or s[j][i+1]=='#' or s[j-1][i] or s[j][i-1]):
                    continue
                if s[j+1][i]!='#' and s[j][i+1]!='#' and s[j-1][i]!='#' and s[j][i-1]!='#':
                    print('No')
                    sys.exit()
print('Yes')


### FIXED CODE ###

H,W = map(int, input().split())
s = [input() for _ in range(H)]

import sys
for j in range(1,H-1):
    for i in range(1,W-1):
        if s[j][i] =='#':
            if s[j][i-1] == '#':
                pass
            elif s[j-1][i] == '#':
                pass
            elif s[j][i+1] == '#':
                pass
            elif s[j+1][i] == '#':
                pass
            else:
                print('No')
                sys.exit()
print('Yes')
#https://atcoder.jp/contests/abc139/tasks/abc139_c

n = int(input())
h = [int(i) for i in input().split()]

a = []

for i in range(n-1):
    a.append(h[i+1]-h[i])

cnt = []
tmp=0
for i in range(len(a)):
    if a[i] <= 0:
        tmp+=1
        if i == len(a)-1:
            cnt.append(tmp)
    else:
        cnt.append(tmp)
        tmp=0
    
cnt.sort(reverse=True)

#print(a,cnt)
print(cnt[0])

### FIXED CODE ###

#https://atcoder.jp/contests/abc139/tasks/abc139_c

n = int(input())
h = [int(i) for i in input().split()]

cnt = []
if n!=1:
    a = []
    for i in range(n-1):
        a.append(h[i+1]-h[i])

    tmp=0
    for i in range(len(a)):
        if a[i] <= 0:
            tmp+=1
            if i == len(a)-1:
                cnt.append(tmp)
        else:
            cnt.append(tmp)
            tmp=0
else:
    cnt.append(0)

cnt.sort(reverse=True)

#print(a,cnt)
print(cnt[0])
from sys import stdin
import numpy as np

N = int(stdin.readline().rstrip().split()[0])
A = [int(x) for x in stdin.readline().rstrip().split()]
# N, X = [int(x) for x in stdin.readline().rstrip().split()]

def G(_a, _b):
  if _a>=_b:
    a, b = _a, _b
  else:
    a, b = _b, _a
  
  while True:
    c = a%b
    if c == 0:
      break
    a,b = b,c
  
  return b

def func(L):
  # unique_L = list(set(L))
  if len(unique_L)==1:
    return unique_L[0]
  elif min(unique_L)==1:
    return 1
  else:
    g = G(unique_L[-2], unique_L[-1])
    unique_L[-2] = g
    unique_L.pop()
    return func(unique_L)
print(func(list(set(A))))
    

### FIXED CODE ###

from sys import stdin
import numpy as np

N = int(stdin.readline().rstrip().split()[0])
A = [int(x) for x in stdin.readline().rstrip().split()]
# N, X = [int(x) for x in stdin.readline().rstrip().split()]

def G(_a, _b):
  if _a>=_b:
    a, b = _a, _b
  else:
    a, b = _b, _a
  
  while True:
    c = a%b
    if c == 0:
      break
    a,b = b,c
  
  return b

L = np.array(list(set(A)))
mini = np.min(L)
yaku = [1]
i=2
r_mini = np.sqrt(mini)
while i<=r_mini:
  if mini%i==0:
    yaku.append(i)
  i+=1
yaku2 = list(map(lambda x: int(mini/x), yaku))
yaku = yaku[::-1]
yaku2.extend(yaku)
for y in yaku2:
  if np.sum(L%y)==0:
    ans = y
    break

print(ans)
s=input()
if s==ABC:
  print("ARC")
if s==ARC:
  print("ABC")

### FIXED CODE ###

S=input()
if S==("ABC"):
  print("ARC")
elif S==("ARC"):
  print("ABC")
import itertools
N,M = map(int,input().split())
edges = set()
for _ in range(N):
  a,b = map(int,input().split())
  edges.add((a,b))
  edges.add((b,a))

answer = 0

for p in itertools.permutations(range(1,N+1)):
  if p[0] != 1:
    continue
  bl = True
  for i in range(N-1):
    if (p[i], p[i+1]) not in edges:
      bl = False
      break
  if bl:
    answer += 1

print(answer)

### FIXED CODE ###

import itertools
N,M = map(int,input().split())
edges = set()
for _ in range(M):
  a,b = map(int,input().split())
  edges.add((a,b))
  edges.add((b,a))

answer = 0

for p in itertools.permutations(range(1,N+1)):
  if p[0] != 1:
    continue
  bl = True
  for i in range(N-1):
    if (p[i], p[i+1]) not in edges:
      bl = False
      break
  if bl:
    answer += 1

print(answer)
n = int(input())
t = int(input())

for i in range(len(n)):
  t += n[i]

if t % 9 == 0:
  print('Yes')
else t % 9 == 0:
  print('No')

### FIXED CODE ###

n = input()

t = 0

for i in n:
  t += int(i)

  
if t % 9 == 0:
  print('Yes')
else:
  print('No')
# B - Guidebook
import numpy as np
import pandas as pd 

N = int(input())
A, B = [[], []]

for _ in range(N):
  a, b = [i for i in input().split()]
  A.append(a)
  B.append(int(b))


A = np.array(A)[:, np.newaxis]
B = np.array(B)[:, np.newaxis]
C = np.concatenate([A, B], axis=1)
df = pd.DataFrame(C, index=[i+1 for i in range(N)])
df = df.sort_values([0, 1])

for i in df.index:
  print(i)


### FIXED CODE ###

# B - Guidebook
import numpy as np
# import pandas as pd 

N = int(input())
A, B = [[], []]

for _ in range(N):
  a, b = [i for i in input().split()]
  A.append(a)
  B.append(int(b))


A = np.array(A)[:, np.newaxis]
B = np.array(B)[:, np.newaxis].astype('int')
C = np.concatenate([A, B], axis=1)
C = C.tolist()

ans = sorted(C, key=lambda x:(x[0],-int(x[1])))

for i in ans:
  print(C.index(i)+1)


"""
df = pd.DataFrame(C, index=[i+1 for i in range(N)])
df = df.sort_values([0, 1], ascending=[True, False])
"""
# for i in df.index:
#  print(i)
from heapq import heappop,heappush
n,m=map(int,input().split())
work=[set() for _ in range(m+1)]
for _ in range(n):
    a,b=map(int,input().split())
    if a<=m: work[a].add(b)

ans=0
q=[]
for i in range(1,m+1):
    for x in work[i]:
        heappush(q,-x)
    if q!=[]: ans+=heappop(q)
print(-ans)

### FIXED CODE ###

a,b=map(int,input().split())
print(max(a+b,a-b,a*b))
n=int(input())
mod = 1000000007
gp = []
gm = []
ga0  =0
gb0 = 0
ans = 1
cnt = 0
for _ in range(n):
    a,b= map(int,input().split())
    if a == 0 and b == 0:
        cnt += 1
    elif  a == 0:
        ga0 += 1
    elif b == 0:
        gb0 += 1
    elif b/a > 0:
        gp.append(b/a)
    elif b/a<0:
        gm.append(b/a)
    else:
        print('what')

gp.sort()
gm.sort()

lp,lm=0,0
cntall = 0
while lp < len(gp) and lm < len(gm):
    cal = gp[lp]*gm[lm]
    if cal == -1:
        cntp,cntm = 1,1
        while lp +1 < len(gp) and  gp[lp] == gp[lp+1]:
            cntp += 1
            lp+=1
        while lm +1 < len(gp) and  gm[lm] == gm[lm+1]:
            cntm += 1
            lm+=1
        ans *= (pow(2,cntp,mod)+pow(2,cntm,mod))%mod-1
        ans %= mod
        lp+=1
        lm+=1
        cntall += cntp+cntm
    elif cal > -1:
        lp += 1
    else:
        lm += 1

ans *= (pow(2,ga0,mod)+pow(2,gb0,mod))%mod-1
ans %= mod
n -= ga0+gb0+cntall+cnt
ans *= pow(2,n,mod)
ans %= mod
ans += cnt
print(ans-1)

### FIXED CODE ###

from math import gcd

n=int(input())
mod=10**9+7

z = 0
za = 0
zb = 0
d = {}

for _ in range(n):
    a,b = map(int,input().split())
    if a == 0 and b ==0:
        z += 1
    elif a == 0:
        za += 1
    elif b == 0:
        zb += 1
    else:
        g = gcd(a,b)
        a //= g
        b //= g
        if a < 0:
            a, b = -a, -b
        if b > 0:
            if (a,b) in d:
                d[(a,b)][0] += 1
            else:
                d[(a,b)] = [1,0]
        else:
            if (-b,a) in d:
                d[(-b,a)][1] += 1
            else:
                d[(-b,a)] = [0,1]

ans = 1
for key in d:
    ans *= (pow(2,d[key][0],mod) + pow(2,d[key][1],mod) - 1) % mod
    ans %= mod
ans *= (pow(2,za,mod) + pow(2,zb,mod) - 1) % mod
ans %= mod
print((ans + z - 1)%mod)
a,b,t＝map(int,input().split)
print(t//a*b)

### FIXED CODE ###

a,b,t=map(int,input().split())
print(t//a*b)
n = int(input())
h = list(map(int,input().split()))
l = [False]*(sum(range(1, n)))
a = 0
for j in range(n):
  for i in range(j+1,n):
    if h[j] <= h[i]:
      l[a] = True
    else:
      if h[j]-1-h[i] < 1:
        l[a] = True
      else:
        continue
    a += 1
if l.count(False) == 0:
  print("Yes")
else:
  print("No")

### FIXED CODE ###

n=int(input())
arr=list(map(int,input().split()))
for i in range(n-2,-1,-1):
  if arr[i]>arr[i+1]:
    arr[i]-=1
    if arr[i]>arr[i+1]:
      print('No')
      break
else:
  print('Yes')
import math

def lcm(x, y):
    return (x * y) // math.gcd(x, y)

def main():
    
    a,b = map(int, input().split())
    
    print(lcm(a, b))

if __name__ == '__main__':
    main()



### FIXED CODE ###

import fractions

def lcm(x, y):
    return (x * y) // fractions.gcd(x, y)

def main():
    
    a,b = map(int, input().split())
    
    ans = lcm(a,b)
    print(ans)

if __name__ == '__main__':
    main()
n=int(input())
sum = 0
for i in range(n):
  a,b=map(input().split())
  if b == "JPY":
    sum += int(a)
  else:
    sum += float(a)*380000
print(sum)

### FIXED CODE ###

n=int(input())
sum = 0
for i in range(n):
  s = input().rstrip().split(' ')
  a=float(s[0])
  b=str(s[1])
  if b == "JPY":
    sum += int(a)
  else:
    sum += float(a)*380000
print(sum)
A, B, C = int(input().split())
if A == B or B == C or C == A:
  if A == B and B == C:
    print('No')
  else:
    print('Yes')
else:
  print('No')

### FIXED CODE ###

A, B, C = map(int, input().split())
if (A == B) or (B == C) or (C == A):
  if (A == B) and (B == C):
    print("No")
  else:
    print("Yes")
else:
  print("No")
n,m = map(int,input().split())
height = list(map(int,input().split()))
lower_list = []
for i in range(m):
    r = list(map(int,input().split()))
    if height[r[0]-1] > height[r[1]-1]:
        lower_list.append(r[1])
    elif height[r[0]-1] < height[r[1]-1]:
        lower_list.append(r[0],r[1])
    else:
        lower_list.append(r[0])
count = len(set(lower_list))
print(n-count)

### FIXED CODE ###

n,m = map(int,input().split())
height = list(map(int,input().split()))
lower_list = []
for i in range(m):
    r = list(map(int,input().split()))
    if height[r[0]-1] > height[r[1]-1]:
        lower_list.append(r[1])
    elif height[r[0]-1] == height[r[1]-1]:
        lower_list.append(r[0])
        lower_list.append(r[1])
    else:
        lower_list.append(r[0])
count = len(set(lower_list))
print(n-count)