Harryxun/stf_run huggingface dataset:
def addScore(Point,Score):
    score[Point]+=Score
    min_index = binary_search(ab,Point)
    while min_index < n-1 and ab[min_index][0] == Point:
        addScore(ab[min_index][1],Score)
        min_index+=1
    

"""
minnum以上で最小の数のindexを返す。無いときはlen(list)を返す
計算量log(len(list))
"""

def binary_search(list, item):
    if list[0][0]>=item:
        return 0
    if list[-1][0]<item:
        return len(list)

    low = 0
    high = len(list) - 1

    while low <= high:
        mid = (low + high) //2
        guess = list[mid][0]
        if guess >= item and list[mid-1][0] < item:
            return mid
        if guess >= item:
            high = mid -1
        else:
            low = mid + 1

    return None






n,q=map(int,input().split())

ab = []
for i in range(n-1):
    ab.append(list(map(int,input().split())))

ab.sort()

score=[0]*(n+1)

for _ in range(q):
    p,x=map(int,input().split())
    addScore(p,x)

print(*(score[1:]))

### FIXED CODE ###

import sys
stdin = sys.stdin
sys.setrecursionlimit(10**9)
 
ni = lambda: int(ns())
na = lambda: list(map(int, stdin.readline().split()))
nn = lambda: list(stdin.readline().split())
ns = lambda: stdin.readline().rstrip()


n,q = na()
g = [[] for i in range(n)]
c = [0]*n

for i in range(n-1):
    a,b = na()
    g[a-1].append(b-1)
    g[b-1].append(a-1)
for i in range(q):
    p,x = na()
    c[p-1] += x

def f(b,a,r):
    r += c[a]
    c[a] = r
    for i in g[a]:
        if i != b:
            f(a,i,r)

f(-1,0,0)
print(' '.join([str(s) for s in c]))
from operator import itemgetter
n = int(input())
rs = [list(map(int(),input().split())) for i in range(n)]
rs = sorted(rs,key=itemgetter(0))
print(' '.join(map(str, sorted(rs, key=itemgetter(1),reverse=True)[0])))

### FIXED CODE ###

from operator import itemgetter
n = int(input())
rs = [list(map(int,input().split())) for i in range(n)]
rs = sorted(rs,key=itemgetter(0))
print(' '.join(map(str, sorted(rs, key=itemgetter(1),reverse=True)[0])))
s = input()
s = s.replace("/", "")
if s <= 20190430 :
    print("Heisei")
else :
    print("TBD")

### FIXED CODE ###

s = input()
s = int(s.replace("/", ""))
if s <= 20190430 :
    print("Heisei")
else :
    print("TBD")
import sys
sys.setrecursionlimit(10**20)

N, M = map(int, input().split())

Map = [[] for _ in range(M)]
reached = [False]*N

for _ in range(M):
    aa, bb = map(int, input().split())
    Map[aa-1].append(bb-1)
    Map[bb-1].append(aa-1)

cnt = 0

def DFS(x):
    global cnt
    reached[x] = True

    if all(reached):
        cnt += 1

    for i in range(N):
        if reached[i]:
            continue

        if i in Map[x]:
            DFS(i)

    reached[x] = False
    return

DFS(0)
print(cnt)


### FIXED CODE ###

N, M = map(int, input().split())

Map = [[] for _ in range(N)]
reached = [False]*N

for _ in range(M):
    aa, bb = map(int, input().split())
    Map[aa-1].append(bb-1)
    Map[bb-1].append(aa-1)

cnt = 0

def DFS(x):
    global cnt
    global reached

    reached[x] = True

    if all(reached):
        cnt += 1
        reached[x] = False

        return

    for i in Map[x]:
        if reached[i]:
            continue

        else:
            DFS(i)

    reached[x] = False


DFS(0)
print(cnt)
a = int(input())
b = int(input())

print(a*b,a*2+b*2)

### FIXED CODE ###

a,b = map(int, input().split())

print(a*b,a*2+b*2)
import sys
input = sys.stdin.readline
n = int(input())
chk = []
for i in range(n):
  a = int(input())
  chk.append(a)
chk.sort()
if n%2 == 0:
  l = [i*2 for i in chk[:n//2]]
  r = [i*2 for i in chk[n//2:]]
  print(sum(r)-sum(l)+chk[n//2-1]-chk[n//2])
else:
  l = [i*2 for i in chk[:(n-1)//2]]
  r = [i*2 for i in chk[(n-1)//2+1:]]
  print(max(sum(r)-sum(l)+chk[(n-1)//2-1]-chk[(n-1)//2]),(sum(r)-sum(l)+chk[(n-1)//2]-chk[(n-1)//2+1]))

### FIXED CODE ###

import sys
input = sys.stdin.readline
n = int(input())
chk = []
for i in range(n):
  a = int(input())
  chk.append(a)
chk.sort()
if n%2 == 0:
  l = [i*2 for i in chk[:n//2]]
  r = [i*2 for i in chk[n//2:]]
  print(sum(r)-sum(l)+chk[n//2-1]-chk[n//2])
else:
  l = [i*2 for i in chk[:(n-1)//2]]
  r = [i*2 for i in chk[(n-1)//2+1:]]
  p = sum(r)-sum(l)+chk[(n-1)//2-1]-chk[(n-1)//2]
  q = sum(r)-sum(l)+chk[(n-1)//2]-chk[(n-1)//2+1]
  print(max(p,q))
n = int(input())
a = list(map(int, input().split()))
a.sort(reverse=True)
ans = 0
for i in range(N):
    if a[i] % 2 == 0:
        ans += a[i]
    else:
        ans -= a[i]

print(ans)

### FIXED CODE ###

n = int(input())
a = list(map(int, input().split()))
a.sort(reverse=True)
ans = 0
for i in range(n):
    if i % 2 == 0:
        ans += a[i]
    else:
        ans -= a[i]

print(ans)
"""
# 標準入力取得
## 文字列
 = sys.stdin.readline().rstrip()
 = list(sys.stdin.readline().rstrip())

## 数値
 = int(sys.stdin.readline())
 = map(int, sys.stdin.readline().split())
 = list(map(int, sys.stdin.readline().split()))
 = [list(map(int,list(sys.stdin.readline().split()))) for i in range(h)]  # 二次元配列入力　二次元マップみたいな入力のとき

# 0埋め, 小数点出力桁指定時のときの出力
a = 100
b = 0.987654321
print("{0:06d}-{1:6f}".format(a,b))
000100-0.987654

# 文字列をリストに格納
char_list = list("abcd") # ["a","b","c","d"]
"""

import math
import sys
import itertools
import queue
from fractions import gcd

import functools

def lcm(a, b):
    return a * b // gcd(a, b)

mod = 1000000007

if __name__ == "__main__":
    N,X = map(int, sys.stdin.readline().split())
    x = list(map(int, sys.stdin.readline().split()))
    l=[]
    for i in range(N):
        l.append(abs(X-x[i]))
    ans = functools.reduce(math.gcd,l)
    print(ans)

### FIXED CODE ###

from functools import reduce
from fractions import gcd
N,X=map(int,input().split())
x=[abs(X-int(i)) for i in input().split()]
print(reduce(gcd,x))
a = int(input())
l=list(map(int ,input().split()))
p=[]
ind=0
cont=0
while ind<a-1:
    if l[ind]>=l[ind+1]:
        cont+=1
        ind+=1
        p.append(cont)
    else:
        ind+=1
        cont=0
        p.append(cont)
        
print(max(p))

### FIXED CODE ###

n = int(input())
l=list(map(int ,input().split()))
ans=[]
count=0
for i in range(n-1):
    if l[i]>=l[i+1]:
        count+=1
    else:
        ans.append(count)
        count=0
ans.append(count)
print(max(ans))
#!python3

import sys
from collections import defaultdict
from math import gcd
from fractions import Fraction

iim = lambda: map(int, input().rstrip().split())

def resolve():
    N = input()
    it = map(int, sys.stdin.read().split())
    mod = 10**9 + 7

    d1 = [defaultdict(int), defaultdict(int)]
    for i, (ai, bi) in enumerate(zip(it, it)):
        val = Fraction(ai, bi)
        d1[0 if val >= 0 else 1][val] += 1

    a1, a2 = d1
    ans = 1
    for k, v in a1.items():
        ik = -1/k
        if ik in a2:
            v2 = a2[ik]
            ans *= pow(2, v+v2, mod) - (pow(2, v, mod)-1)*(pow(2, v2, mod)-1)
        else:
            ans *= pow(2, v, mod)
        ans %= mod

    for k, v in a2.items():
        ik = -1/k
        if not ik in a1:
            ans *= pow(2, v, mod)
            ans %= mod

    print(ans-1)



if __name__ == "__main__":
    resolve()


### FIXED CODE ###

#!python3

import sys
from collections import defaultdict
from math import gcd

iim = lambda: map(int, input().rstrip().split())

def resolve():
    N = input()
    it = map(int, sys.stdin.read().split())
    mod = 10**9 + 7

    d1 = [defaultdict(int), defaultdict(int)]
    z0 = 0
    for ai, bi in zip(it, it):
        if ai == 0 and bi == 0:
            z0 += 1
            continue

        ci = gcd(ai, bi)
        ai, bi = ai // ci, bi // ci

        t = ai * bi < 0
        if ai < 0:
            ai, bi = -ai ,-bi
        elif ai == 0:
            bi = -1
            t = 1

        d1[t][(ai, bi)] += 1


    a1, a2 = d1
    ans = 1
    for (ai, bi), v in a1.items():
        k2 = (bi, -ai)
        if k2 in a2:
            v2 = a2[k2]
            ans *= pow(2, v, mod) + pow(2, v2, mod) - 1
        else:
            ans *= pow(2, v, mod)
        ans %= mod

    for (ai, bi), v in a2.items():
        k2 = (-bi, ai)

        if k2 in a1: continue

        ans *= pow(2, v, mod)
        ans %= mod

    print((ans-1+z0) % mod)



if __name__ == "__main__":
    resolve()
from collections import defaultdict
MOD = 10**9+7
N, k = map(int, input().split())
E = defaultdict(list)

for i in range(N-1):
  a, b = map(int, input().split())
  E[a-1] += [b-1]
  E[b-1] += [a-1]
  
def dfs(K, es, now, par):
  if par==-1:
    can_use = K-1
  else:
    can_use = K-2
  if K<len(es[now]):
    return 0
  else:
    case_num = 1
    for e in es[now]:
      if e==par:
        continue
      case_num *= can_use
      can_use -= 1
      case_num %= MOD
    for e in es[now]:
      if e==par:
        continue
      case_num *= dfs(e, now)
      case_num %= MOD
    return case_num

ans = k*dfs(k, E, 0,-1)
ans %= MOD
print(ans)

### FIXED CODE ###

from collections import defaultdict, deque
def cmb(n, r, mod):
    if ( r<0 or r>n ):
        return 0
    return g1[n] * g2[r] % mod

mod = 10**9+7 #出力の制限
N = 10**6
g1 = [1, 1] # 元テーブル
g2 = [1, 1] #逆元テーブル
inverse = [0, 1] #逆元テーブル計算用テーブル

for i in range( 2, N + 1 ):
    g1.append( ( g1[-1] * i ) % mod )
    inverse.append( ( -inverse[mod % i] * (mod//i) ) % mod )
    g2.append( (g2[-1] * inverse[-1]) % mod )

N, K = map(int, input().split())
dic = defaultdict(list)
for i in range(N-1):
  a, b = map(int, input().split())
  dic[a-1] += [b-1]
  dic[b-1] += [a-1]

log = [float('inf')]*N
log[0] = 0
q = deque([0])
ans = K
while q:
  p = q.popleft()
  if log[p]<1:
    ans *= cmb(K-1,K-1-len(dic[p]),mod)
  else:
    ans *= cmb(K-2,K-1-len(dic[p]),mod)
  ans %= mod
  for e in dic[p]:
    if log[e]>log[p]+1:
      q += [e]
      log[e] = log[p]+1
print(ans)
a=input()
b=input()
h=input()
print((a+b)*h+/2)

### FIXED CODE ###

a = int(input())
b = int(input())
h = int(input())
square = (a + b) * h / 2
print(int(square))
while True:
 a,op,b =map(int,raw_input().split())
 if(op=='+'):
  print a+b
 elif(op=='-'):
  print a-b
 elif(op=='*'):
  print a*b
 elif(op=='/'):
  print a/b
 else:
  break

### FIXED CODE ###

while True:
 a,op,b = map(str,raw_input().split())
 a=int(a)
 b=int(b)

 if(op=='?'):
  break
 if(op=='+'):
  print a+b
 elif(op=='-'):
  print a-b
 elif(op=='*'):
  print a*b
 elif(op=='/'):
  print a/b
x=int(input())
c==0
while x%2==0:
    c.append(2)
    n//=2
f=3
while f*f<=x:
    if x%f==0:
        c.append(f)
    else: f+=2
if x!=1:
    c.append(x)
while i in c:
    for a in range(10*3):
        if i*(a**4+a**3*(a-i)+a**2*(a-i)**2+a*(a-i)**3+(a-i)**4)==x:
            print(a,a-i)
            break
        if -i*(a**4+a**3*(a+i)+a**2*(a+i)**2+a*(a+i)**3+(a+i)**4)==x:
            print(a,a+i)
            break

### FIXED CODE ###

x=int(input())
ma=200
for i in range(ma):
    for j in range(-ma,ma):
        if (i**5 - j**5) ==x:
            print(i,j)
            exit()
W,H,x,y,r = map(int, raw_input().split(,))
if r <= x <= W-r and r <= y <= H-r:
print "Yes"
else:
print "No"

### FIXED CODE ###

W,H,x,y,r = map(int, input().split())
if r <= x <= W-r and r <= y <= H-r:
    print ('Yes')
else:
    print ('No')
N = int(input())
listh = list(map(int, input().split()))
listans = [listh[0]]
for n in range(1,N-1):
    if (listh[n+1]-listh[n])*(listh[n]-listh[n-1])<=0:
        listans.append(listh[n])
listans.append(listh[N-1])        
#print(listans)
l =len(listans)
listans2 = []
for n in range(l-1):
    if listans[n] == listans[n+1]:
        pass
    else:
        listans2.append(listans[n])
listans2.append(listans[l-1])        
#print(listans2)    
L = len(listans2)
#print(L)
listodd = [listans2[x] for x in range(L) if x%2 ==1]
#print(listodd)
listeven = [listans2[x] for x in range(L) if x%2 ==0]
#print(listeven)
if L%2 == 0:
    if listeven[0]>listodd[0]:
        del listodd[-1]
        ans = sum(listeven)-sum(listodd)
        print(ans)

    else:  
        del listeven[0]
        ans = sum(listodd)-sum(listeven)  
        print(ans)

else:     
    if listeven[0]>listodd[0]:
        ans = sum(listeven)-sum(listodd)
        print(ans)

    else:   
        del listeven[0]
        del listeven[-1] 
        ans = sum(listodd)-sum(listeven)
        print(ans)

### FIXED CODE ###

N = int(input())
listh = list(map(int, input().split()))
listans = [listh[0]]
for n in range(1,N-1):
    if (listh[n+1]-listh[n])*(listh[n]-listh[n-1])<=0:
        listans.append(listh[n])
listans.append(listh[N-1])        
#print(listans)
l =len(listans)
listans2 = []
for n in range(l-1):
    if listans[n] == listans[n+1]:
        pass
    else:
        listans2.append(listans[n])
listans2.append(listans[l-1])        
#print(listans2)    
L = len(listans2)
#print(L)
listans3 = [listans2[0]]
for n in range(1,L-1):
    if (listans2[n+1]-listans2[n])*(listans2[n]-listans2[n-1])<=0:
        listans3.append(listans2[n])
listans3.append(listans2[L-1])        
#print(listans3)
ll =len(listans3)
listodd = [listans3[x] for x in range(ll) if x%2 ==1]
#print(listodd)
listeven = [listans3[x] for x in range(ll) if x%2 ==0]
#print(listeven)
if len(listodd) == 0:
    print(listeven[0])
elif ll%2 == 0:
    if listeven[0]>listodd[0]:
        del listodd[-1]
        ans = sum(listeven)-sum(listodd)
        print(ans)

    else:  
        del listeven[0]
        ans = sum(listodd)-sum(listeven)  
        print(ans)

else:     
    if listeven[0]>listodd[0]:
        ans = sum(listeven)-sum(listodd)
        print(ans)

    else:
        del listeven[-1]
        if len(listeven) >= 1:
            del listeven[0]
        ans = sum(listodd)-sum(listeven)
        print(ans)
N=int(input())
import math
print(2*N//math.gcd(2,N))

### FIXED CODE ###

N=int(input())
from fractions import gcd
print(2*N//gcd(2,N))
n = int(input())
a = list(map(int,input().split()))
ball = [0 for i in range(n)]
count = 0
index = []

for i in range(n-1, n//2 - 1, -1):
    if a[i] == 1:
        ball[i] = 1
        count += 1
        index.append(i+1)
for i in range(n//2 - 1, -1, -1):
    if ball[i + (i+1)] % 2 != a[i]:
        ball[i] = ball[i + (i+1)] + 1
        count += 1
        index.append(i+1)
    else:
        ball[i] = ball[i + (i+1)]
        
ans = ""
for i in range(len(index)):
    if i < len(index)-1:
        ans += str(index[i]) + " "
    else:
        ans += str(index[i])
print(count)
print(ans)

### FIXED CODE ###

a = int(input())
print(3*a**2)
[a,b] = [int(x) for x in input().split()]

if a <= b:
    print(f'{a}'*b) 
else:
    print(f'{b}'*a) 

### FIXED CODE ###

[a,b] = [int(x) for x in input().split()]

if a <= b:
    print('{}'.format(a)*b) 
else:
    print('{}'.format(b)*a)
N = int(input())
A = list(map(int, input().split()))

ans = []
mx = max(A)
mi = min(A)

if abs(mi) > abs(mx):
    x = A.index(mi)
    for y in range(N):
        if y == x:
            continue
        A[y] += mi
        ans.append((x, y))
if abs(mx) > abs(mi):
    x = A.index(mx)
    for y in range(N):
        if x == y:
            continue
        A[y] += mx
        ans.append((x, y))

for i in range(N - 1):
    l, r = A[i], A[i + 1]

    if l > r:
        if r > 0:
            A[i + 1] += l
            ans.append((i, i + 1))
        if l < 0:
            A[i] += r
            ans.append((i + 1, i))

print(len(ans))
for x, y in ans:
    print(x + 1, y + 1)

if list(sorted(A)) != A:
    print(A)
    1 / 0


### FIXED CODE ###

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

ans = []
mx = max(A)
mi = min(A)

if mx * mi < 0:
    if abs(mi) > abs(mx):
        x = A.index(mi)
        for y in range(N):
            if y == x:
                continue
            A[y] += mi
            ans.append((x, y))
    else:
        x = A.index(mx)
        for y in range(N):
            if x == y:
                continue
            A[y] += mx
            ans.append((x, y))

for i in range(N - 1)[::(-1)**(min(A) < 0)]:
    l, r = A[i], A[i + 1]

    if l > r:
        if r >= 0:
            A[i + 1] += l
            ans.append((i, i + 1))
        elif l <= 0:
            A[i] += r
            ans.append((i + 1, i))

print(len(ans))
for x, y in ans:
    print(x + 1, y + 1)

if list(sorted(A)) != A:
    print(A)
    1 / 0
import sys
l = []
c = list([0] * 100)
for i in sys.stdin.readlines():
    c[int(i - 1)] += 1
m = max(c)
for i in xrange(c.count(m)):
    i = c.index(m)
    print i + 1
    c.pop(i)

### FIXED CODE ###

l = []
c = list([0] * 100)
while True:
    try:
        c[int(raw_input()) - 1] += 1
    except:
        break
m = max(c)
for i in xrange(c.count(m)):
    j = c.index(m)
    print j + 1
    c[j] = 0
A = int(input())
B = int(input())
if(A=1&&B==2):
  print(3)
if(A==2&&B==1):
  print(3)
if(A=1&&B==3):
  print(2)
if(A==3&&B==1):
  print(2)
if(A=3&&B==2):
  print(1)
if(A==2&&B==3):
  print(1)


### FIXED CODE ###

A = int(input())
B = int(input())
print(6-(A+B))
data=[]
while True:
    n = int(input())
    if n==0:
        break
    for i in range(n):
        spam=list(map(int,input().split()))
        spam.append(sum(spam))
        data.append(spam)
        for j in spam:
            print(str(j)+' ',end='')
        print('')
    for i in range(len(data)+1):
        print(str(sum(x[i] for x in data))+' ',end='')
    print('')

### FIXED CODE ###

while True:
    data=[]
    n = int(input())
    if n==0:
        break
    for i in range(n):
        spam=list(map(int,input().split()))
        spam.append(sum(spam))
        data.append(spam)
    spam=[]
    for i in range(n+1):
        spam.append(sum(x[i] for x in data))
    data.append(spam)
    for i in range(n+1):
        for j in range(n+1):
            print('{:5}'.format(data[i][j]),end='')
        print('')
N, Q = map(int, input().split())
S=input()
l=list()
r=list()
for i in range(Q):
  L,R=map(int, input().split())
  S2=S[L-1:R].split("AC")
  print(S[L-1:R])
  print(len(S2)-1)

### FIXED CODE ###

N, Q = map(int, input().split())
S=list(input())
Snum=list()
Snum.append(0)
Snum.append(0)
for i in range(1,N):
  if S[i]=="C" and S[i-1]=="A":
    Snum.append(Snum[i]+1)
  else:
    Snum.append(Snum[i])
for i in range(Q):
  L,R=map(int, input().split())
  print(Snum[R]-Snum[L])
N = int(input())

P = []
for _ in range(N):
    x, y = map(int, input().split())
    P.append((x, y))

from collections import defaultdict

cnt = defaultdict(int)
for pi in range(N):
    for pj in range(pi+1, N):
        if pi == pj:
            continue
        # x
        dx = abs(P[pi][0] - P[pj][0])

        # y
        dy = abs(P[pi][1] - P[pj][1])

        cnt[(dx, dy)] += 1

ans = N-max(cnt.values())
print(ans)



### FIXED CODE ###

N = int(input())

P = []
for _ in range(N):
    x, y = map(int, input().split())
    P.append((x, y))

from collections import defaultdict

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

cnt = defaultdict(int)
for pi in range(N):
    for pj in range(N):
        if pi == pj:
            continue
        # x
        dx = P[pi][0] - P[pj][0]

        # y
        dy = P[pi][1] - P[pj][1]

        cnt[(dx, dy)] += 1

ans = N-max(cnt.values())
print(ans)
from functools import lru_cache

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

S = [0] * 3
for a in A:
  S[a-1] += 1

@lru_cache(maxsize=None)
def calc(i, j, k):
  if i==j==k==0: return 0
  return (i * (calc(i-1, j, k) if i > 0 else 0) + j * (calc(i+1, j-1, k) if j > 0 else 0) + k * (calc(i, j+1, k-1) if k > 0 else 0) + N) / (i + j + k)

print(calc(*S))

### FIXED CODE ###

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

S = [0] * 3
for a in A:
  S[a-1] += 1
I, J, K = S

dp = [[[0.0] * (N+1) for j in range(N+1)] for i in range(N+1)]

for k in range(S[2] + 1):
  for j in range(S[1] + S[2] - k + 1):
    for i in range(S[0] + S[1] + S[2] - j - k + 1):
      if i == j == k == 0: continue
      dp[i][j][k] = (i * (dp[i-1][j][k] if i > 0 else 0) + j * (dp[i+1][j-1][k] if j > 0 else 0) + k * (dp[i][j+1][k-1] if k > 0 else 0) + N) / (i + j + k)

print(dp[I][J][K])
N, M = list(map(int, input().split()))
S = input()
T = input()

from fractions import gcd
L = (N * M) // gcd(N, M)

L1 = [1]
L2 = [1]
for i in range(1, N):
    t = i * (L // N) + 1
    L1.append(t)

for i in range(1, M):
    t = i * (L // M) + 1
    L2.append(t)



LS = [None] * L
for i, li in enumerate(L1):
    ind = li-1
    LS[ind] = S[i]

ans = True
# for i, li in enumerate(L2):
#     ind = li-1
#     if LS[ind] is not None:
#         if LS[ind] != T[i]:
#             ans = False

if ans:
    print(L)
else:
    print(-1)


# print(L1)
# print(L2)
# print(LS)

### FIXED CODE ###

from fractions import gcd

N, M = list(map(int, input().split()))
S = input()
T = input()

L = (N * M) // gcd(N, M)

L1 = [0]
L2 = [0]

from collections import Counter
c = Counter()

for i in range(1, N):
    t = i * (L // N) + 1
    L1.append(t-1)

for i in range(1, M):
    t = i * (L // M) + 1
    L2.append(t-1)


d = {}
for i, li in enumerate(L1):
    d[li] = S[i]

# print(d)

ans = True

for i, li in enumerate(L2):
    if not d.get(li):
        continue
    if d[li] != T[i]:
        ans = False

# print(L1)
# print(L2)
# print(common)
# print(dic)

if ans:
    print(L)
else:
    print(-1)
n = int(input())
hint_ls = [0] * n
for i in range(n):
    x,y,h = map(int,input().split())
    hint_ls[i] = [x,y,h]
target_ls = [[i,j] for i in range(101) for j in range(101)]
for x_target, y_target in target_ls:
    res = True
    for i in range(n):
        x_hint, y_hint, h_hint = hint_ls[i]
        h_target_new = h_hint + abs(x_hint - x_target) + abs(y_hint - y_target)
        if i>= 1:
            if not h_target_new == h_target_old:
                res = False
        h_target_old = h_target_new
    if res:
        x_ans,y_ans,h_ans = x_target, y_target, h_target_new

print(x_ans, y_ans, h_ans)

### FIXED CODE ###

import sys
n = int(input())
inf_ls = [[0]*3 for _ in range(n)]
for i in range(n):
    x,y,h = map(int,input().split())
    inf_ls[i] = x,y,h
for Cx in range(101):
    for Cy in range(101):
        this_is_C = True
        H_set = set()
        zero_ls = []
        for i in range(n):
            x,y,h = inf_ls[i]
            if h > 0:
                H = abs(x-Cx) + abs(y-Cy) + h
                H_set.add(H)
            else:
                zero_ls.append([x,y])
        if len(H_set) != 1:
            this_is_C = False
            continue
        H = list(H_set)[0]
        for x,y in zero_ls:
            if H - abs(x-Cx) - abs(y-Cy) > 0:
                this_is_C = False
        if this_is_C:
            print(Cx,Cy,H)
            exit()
import bisect
from itertools import accumulate

N=int(input())
alphabet=[chr(i) for i in range(97,97+26)]
num=[26**i for i in range(1,12)]
acc=list(accumulate(num))
ans=""
index=bisect.bisect_left(acc,N)
if index==0:
    ans+=alphabet[N-1]
else:
    N-=acc[index-1]
    while True:
        tmp=N//num[index-1]
        ans+=alphabet[tmp]
        N-=tmp*num[index-1]
        index=bisect.bisect_left(num,N)
        if index==0:
            break
    ans+=alphabet[N-1]
print(ans)

### FIXED CODE ###

N=int(input())
alphabet=[chr(i) for i in range(97,123)]
ans=""
while N>0:
    N-=1
    ans=chr(97+(N%26))+ans
    N//=26
print(ans)
import sys
sa=list(str(input()))
sb=list(str(input()))
sc=list(str(input()))

tmp="a"

while True:
    if tmp=="a":
        if len(sa)==0:
            print("A")
            sys.exit()
        else:
            tmp=sa[0]
            sa=sa.lstrip(sa[0])
    elif tmp=="b":
        if len(sb)==0:
            print("B")
            sys.exit()
        else:
            tmp=sb[0]
            sb=sb.lstrip(sb[0])
    elif tmp=="c":      
        if len(sc)==0:
            print("C")
            sys.exit()
        else:
            tmp=sc[0]
            sc=sc.lstrip(sc[0])

### FIXED CODE ###

import sys
sa=list(str(input()))
sb=list(str(input()))
sc=list(str(input()))

tmp="a"

while True:
    if tmp=="a":
        if len(sa)==0:
            print("A")
            sys.exit()
        else:
            tmp=sa[0]
            sa.pop(0)
    elif tmp=="b":
        if len(sb)==0:
            print("B")
            sys.exit()
        else:
            tmp=sb[0]
            sb.pop(0)
    elif tmp=="c":      
        if len(sc)==0:
            print("C")
            sys.exit()
        else:
            tmp=sc[0]
            sc.pop(0)