Harryxun/stf_run huggingface dataset:
import sys
sys.setrecursionlimit(10**5+1)

def cur(p):
    for i in x[p]:
        if rank[i]==-1:
            rank[i]=rank[p]+1
            par[i]=p
            cur(i)


n=int(input())
x=[[] for i in range(n)]

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

rank=[-1 for i in range(n)]
rank[0]=0
par=[-1 for i in range(n)]

cur(0)
M=max(rank)
x=[[] for i in range(M+1)]

q=[0,0]
r=[n//3,n//3,n//3]
if n%3>0: r[1]+=1
if n%3>1: r[2]+=1
tmp1,tmp2,tmp3=1,2,3

for i in range(n):
    q[rank[i]%2]+=1
    x[rank[i]].append(i)
ans=[-1 for i in range(n)]


if q[0]>r[0]+r[1] or q[1]>r[0]+r[2]:
    if q[0]>r[0]+r[2] or q[1]>r[0]+r[1]:
        print(-1)
        sys.exit()
    else:
        tmp1,tmp2=2,1


for i in range(M+1):
    if i%2==0:
        for p in x[i]:
            if tmp1<=n:
                ans[p]=tmp1
                tmp1+=3
            else:
                ans[p]=tmp3
                tmp3+=3
    else:
        for p in x[i]:
            if tmp2<=n:
                ans[p]=tmp2
                tmp2+=3
            else:
                ans[p]=tmp3
                tmp3+=3


for i in range(n-1):
    print(ans[i],end=" ")
print(ans[n-1])

### FIXED CODE ###

import sys
sys.setrecursionlimit(10**5+1)

def cur(p):
    for i in x[p]:
        if rank[i]==-1:
            rank[i]=rank[p]+1
            par[i]=p
            cur(i)


n=int(input())
x=[[] for i in range(n)]

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

rank=[-1 for i in range(n)]
rank[0]=0
par=[-1 for i in range(n)]

cur(0)
M=max(rank)
x=[[] for i in range(M+1)]

q=[0,0]
r=[n//3,n//3,n//3]
if n%3>0: r[1]+=1
if n%3>1: r[2]+=1
tmp1,tmp2,tmp3=1,2,3

for i in range(n):
    q[rank[i]%2]+=1
    x[rank[i]].append(i)
ans=[-1 for i in range(n)]

"""
if q[0]>r[0]+r[1] or q[1]>r[0]+r[2]:
    if q[0]>r[0]+r[2] or q[1]>r[0]+r[1]:
        tmp1,tmp2=2,1
"""

if q[0]<=r[0]+r[1] and q[1]<=r[0]+r[2]:
    for i in range(n):
        if rank[i]%2==0:
            if tmp1<=n:
                ans[i]=tmp1
                tmp1+=3
            else:
                ans[i]=tmp3
                tmp3+=3
        else:
            if tmp2<=n:
                ans[i]=tmp2
                tmp2+=3
            else:
                ans[i]=tmp3
                tmp3+=3

elif q[0]<=r[0]:
    for i in range(n):
        if rank[i]%2==0:
            ans[i]=tmp3
            tmp3+=3
        else:
            if tmp1<=n:
                ans[i]=tmp1
                tmp1+=3
            elif tmp2<=n:
                ans[i]=tmp2
                tmp2+=3
            else:
                ans[i]=tmp3
                tmp3+=3

elif q[1]<=r[0]:
    for i in range(n):
        if rank[i]%2==1:
            ans[i]=tmp3
            tmp3+=3
        else:
            if tmp1<=n:
                ans[i]=tmp1
                tmp1+=3
            elif tmp2<=n:
                ans[i]=tmp2
                tmp2+=3
            else:
                ans[i]=tmp3
                tmp3+=3

    

for i in range(n-1):
    print(ans[i],end=" ")
print(ans[n-1])
import sys
n = int(sys.stdin.readline().strip('\n'))
h = list(map(int, sys.stdin.readline().strip('\n').split()))
inf = float('inf')
dp = [inf for _ in range(n)]
# メモ化再帰（一度計算した結果はメモしておく）
def rec(i):
  # 値が既に更新されていたらそのまま返す（計算し直さない）
  if dp[i] < inf: return dp[i]
  if i==0: return 0
  res = inf
  res = min(res, rec(i-1) + abs(h[i]-h[i-1]))
  if i>1: res = min(res, rec(i-2) + abs(h[i]-h[i-2]))
  dp[i] = res
  return res
ans = rec(n-1)
print(ans)


### FIXED CODE ###

import sys
n = int(sys.stdin.readline().strip('\n'))
h = list(map(int, sys.stdin.readline().strip('\n').split()))
dp = [float('inf') for _ in range(n)]
dp[0] = 0
dp[1] = abs(h[0]-h[1])
for i in range(2, n):
  dp[i] = min(dp[i-1] + abs(h[i-1]-h[i]), 
             dp[i-2] + abs(h[i-2]-h[i]))
print(dp[n-1])
radius = input()
print(radius*radius)

### FIXED CODE ###

r = input()
print(int(r) * int(r))
N = int(input())
li = list(map(int,input().split())).reverse()

dp = [0]*N

for i in range(N-1):
  if li[i+1] >= li[i]:
    dp[i+1] = dp[i]+1
  else:
    dp[i+1] = 0
    
print(max(dp))



### FIXED CODE ###

N = int(input())
li = list(map(int,input().split()))
li.reverse()

dp = [0]*N

for i in range(N-1):
  if li[i+1] >= li[i]:
    dp[i+1] = dp[i]+1
  else:
    dp[i+1] = 0
    
print(max(dp))
A, B, C = map(int,input().split())
if A = B and B != C:
    print('Yes')
elif C = B and C != A:
    print('Yes')
elif A = C and C != B:
    print('Yes')
else('No')

### FIXED CODE ###


A, B, C = map(int,input().split())
if A == B and B != C:
  print('Yes')
elif C == B and C != A:
  print('Yes')
elif A == C and C != B:
  print('Yes')
else:
  print('No')
# coding: utf-8

def main():
    S = input()
    dic = {'N':0, 'S':0, 'E':0, 'W':0}
    ans = 'No'

    for s in S:
        dic[s] += 1

    if (dic['N'] == 0 and dic['S'] == 0) or (dic['N'] > 0 and dic['S'] > 0):
        if (dic['E'] == 0 and dic['W'] == 0) or (dic['E'] > 0 and mp['W'] > 0):
            ans = 'Yes'

    print(ans)

if __name__ == "__main__":
    main()


### FIXED CODE ###

# coding: utf-8

def main():
    S = input()
    dic = {'N':0, 'S':0, 'E':0, 'W':0}
    ans = 'No'

    for s in S:
        dic[s] += 1

    if (dic['N'] == 0 and dic['S'] == 0) or (dic['N'] > 0 and dic['S'] > 0):
        if (dic['E'] == 0 and dic['W'] == 0) or (dic['E'] > 0 and dic['W'] > 0):
            ans = 'Yes'

    print(ans)

if __name__ == "__main__":
    main()
n,X = map(int,input().split())
x = list(map(int,input().split()))
x.append(X)
x.sort()
a=[]
for i in range(len(x)-1):
        a.append(x[i+1]-x[i])

def gcd(m,n):
        gcd(n,m%n)
        if m%n == 0:
                return n

for j in range(len(a)):
        if a[j]%min(a) == 0:
                ans = min(a)
        else:
                ans = gcd(j,min(a))
print(ans)

### FIXED CODE ###

n,X = map(int,input().split())
x = list(map(int,input().split()))
x.append(X)
x.sort()
a=[]
for i in range(len(x)-1):
        a.append(x[i+1]-x[i])        

def gcd(m,n):
        while n:
                m,n = n,m%n
        return m

ans=a[0]
for j in a:
        if j%ans != 0:
                ans = gcd(j,ans)
print(ans)
n, k = map(int, input().split())
s = input()

s = '1' + s + '1'

cnt_1 = []
cnt_0 = []
stack_1 = 0
stack_0 = 0
for i in s:
    if i == '1':
        if stack_0 > 0:
            cnt_0.append(stack_0)
            stack_0 = 0
        stack_1 += 1
    else:
        if stack_1 > 0:
            cnt_1.append(stack_1)
            stack_1 = 0
        stack_0 += 1
if stack_1 > 0:
    cnt_1.append(stack_1)

if len(cnt_1) == 0 or len(cnt_0) == 0:
    print(n)
    exit()
cnt_1[0] -= 1
cnt_1[-1] -= 1
cum_1 = []
cum_0 = []
for i in range(len(cnt_1)-k):
    cum_1.append(sum(cnt_1[i:i+k+1]))
for i in range(len(cnt_0)-k+1):
    cum_0.append(sum(cnt_0[i:i+k]))

res = []
for v, w in zip(cum_1, cum_0):
    res.append(v+w)
print(max(res))

### FIXED CODE ###

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

s = '1' + s + '1'

cnt_1 = []
cnt_0 = []
stack_1 = 0
stack_0 = 0
for i in s:
    if i == '1':
        if stack_0 > 0:
            cnt_0.append(stack_0)
            stack_0 = 0
        stack_1 += 1
    else:
        if stack_1 > 0:
            cnt_1.append(stack_1)
            stack_1 = 0
        stack_0 += 1
if stack_1 > 0:
    cnt_1.append(stack_1)

if len(cnt_1) == 0 or len(cnt_0) == 0:
    print(n)
    exit()
cnt_1[0] -= 1
cnt_1[-1] -= 1

if k > len(cnt_0):
    k = len(cnt_0)
cum_1 = [sum(cnt_1[:k+1])]
cum_0 = [sum(cnt_0[:k])]
for i in range(1, len(cnt_1)-k):
    cum = cum_1[i-1] + cnt_1[i+k] - cnt_1[i-1]
    cum_1.append(cum)
for i in range(1, len(cnt_0)-k+1):
    cum = cum_0[i-1] + cnt_0[i+k-1] - cnt_0[i-1]
    cum_0.append(cum)
res = []

for v, w in zip(cum_1, cum_0):
    res.append(v+w)
print(max(res))
import sys


a = int(sys.argv[1])
b = int(sys.argv[2])

k = (a + b) / 2

print(int(k), end="") if int(k) == k else print("IMPOSSIBLE", end="")





### FIXED CODE ###

import sys

i = list(map(int, input().split()))

k = (i[0] + i[1]) / 2

print(int(k), end="") if int(k) == k else print("IMPOSSIBLE", end="")
A, B, K = map(int, input().split())
AB = list(range(A, B+1))
 
for i in sorted(set(AB[:K]) | set(AB[-K:])):
    print(i)

### FIXED CODE ###

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

if b-a+1 <= 2*k:
    for num in range(a, b+1):
        print(num)
else:
    for num in range(a, a+k):
        print(num)
    for num in range(b-k+1,b+1):
        print(num)
a,b=input()

x=a+b
y=a-b
z=a*b

print(max(x,y,z))


### FIXED CODE ###

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

x=a+b
y=a-b
z=a*b

print(max(x,y,z))
n=int(input())
a=[int(input()) for i in range(n)] 
m=a[0]

for i in range(n):
    if m<a[i]:
        m=a[i]
        k=i

for j in range(n):
    if j==k:
        print(sorted(a)[-2])
    else:
        print(m)

### FIXED CODE ###

n=int(input())
a=[int(input()) for i in range(n)] 
m=a[0]
k=0

for i in range(n):
    if m<a[i]:
        m=a[i]
        k=i

for j in range(n):
    if j==k:
        print(sorted(a)[-2])
    else:
        print(m)
A,B = [int(i) for i in input().split()]
emax = (A + 1) / 0.08
emin = A / 0.08
tmax = (B + 1) / 0.08
tmin = B / 0.1

if emin < tmax and emin >= tmin:
    print(int(emin))
elif tmin < emax and tminn >= emin:
    print(int(tmin))
else:
    print(-1)

### FIXED CODE ###

import math

A,B = [int(i) for i in input().split()]
emax = (A + 1) / 0.08
emin = math.ceil(A / 0.08)
tmax = (B + 1) / 0.1
tmin = B / 0.1

if emin < tmax and emin >= tmin:
    print(emin)
elif tmin < emax and tmin >= emin:
    print(int(tmin))
else:
    print(-1)
n, a, b = map(int, input().split())
for i in range(n+1):
    o = i // 10000
    p = (i % 10000) // 1000
    q = (i % 1000) // 100
    r = (i % 100) // 10
    s = i % 10
    if a <= o + p + q + r + s <= b:
        su += i
print(su)

### FIXED CODE ###

n, a, b = map(int, input().split())
returnSum = 0
for i in range(n+1):
    d = 0
    for j in range(len(str(i))):
        d += int(str(i)[j])
    if a <= d <= b:
        returnSum += i
print(returnSum)
x = input()
x = (x*x*x)
print(x)


### FIXED CODE ###

x = int(input())
x = x*x*x
print(x)
import math
N = int(input())
A = list(map(int,input().split()))
a = A[0]
for i in A:
    a = math.gcd(a,i)
print(a)

### FIXED CODE ###

N = int(input())
A = list(map(int,input().split()))
a = A[0]

def gcd(a, b):
    while b:
        a, b = b, a % b
    return a

for i in A:
    a = gcd(a,i)
print(a)
cost = input()
amari = int(cost[-3:-1])

print(1000 - amari)

### FIXED CODE ###

cost = input()
amari = int(cost[-3:])
if amari == 0:
  amari = 1000
print(1000 - amari)
N = int(input())
a = list(map(int, input().split(" ")))

ans = float("ïnf")
for i in a:
    ans = min(ans, len(bin(i)) - bin(i).rfind("1") -1)

print(ans)

### FIXED CODE ###

N = int(input())

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

ans = float('inf')

for i in a:
    ans = min(ans, len(bin(i)) - bin(i).rfind("1") - 1)

print(round(ans))
input()
input = list(input())
print(*input[::-2], *input[::2]

### FIXED CODE ###

N=int(input())
A=list(map(int,input().split()))
print(*A[::-2],*A[N%2::2])
from decimal import *
a,b=map(int, raw_input().split())
d=a/b
r=a%b
Decimal(f)=Decimal(a)/Decimal(b)
print "{0} {1} {2}".format(d, r, Decimal(f)) 

### FIXED CODE ###

a,b=map(int, raw_input().split())
d=a/b
e=a%b
print "{0} {1} {2:0.8f}".format(int(d), int(e), float(a)/float(b))
n=int(input())
if n%2==0:
  print (n/2)
else:
  a=(n//2+1)
  print a


### FIXED CODE ###

import math
n=int(input())
print(math.ceil(n/2))
A, B) = map(int, input().split(' '))
if A < 10 and B < 10:
    print(A * B)
else:
    print('-1')


### FIXED CODE ###

(A, B) = map(int, input().split(' '))
if A < 10 and B < 10:
    print(str(A * B))
else:
    print('-1')
n=int(input())
l=[int(input()) for i in range(n)]
s=sorted(l)
m=s[-1]
n=s[-2]
nums=[i for i in range(n)]
for num in nums:
  if(l[num]!=m:
    print(m)
  else:
    print(n)

### FIXED CODE ###

n=int(input())
l=[int(input()) for i in range(n)]
s=sorted(l)
p=s[-1]
q=s[-2]
for i in range(n):
  if l[i]==p:
    print(q)
  else:
    print(p)
n = int(input())
a = input().split(" ")

s = a[0]

for num in a[1:]:
	s ^= num

ans = [0]*n

for i, num in enumerate(a):
	ans[i] = s^num

print(*ans)

### FIXED CODE ###

n = int(input())
aa = input().split(" ")
a = [int(c) for c in aa]

s = a[0]

for num in a[1:]:
	s ^= num

ans = [0]*n

for i, num in enumerate(a):
	ans[i] = s^num

print(*ans)
N=int(input())
lim=10**9+7
import numpy as np
def seachPrimeNum(N):
    max_ = int(np.sqrt(N))
    seachList = [i for i in range(2,N+1)]
    primeNum = []
    while seachList[0] <= max_:
        primeNum.append(seachList[0])
        tmp = seachList[0]
        seachList = [i for i in seachList if i % tmp != 0]
    primeNum.extend(seachList)
    return primeNum

ans = 1
l=seachPrimeNum(N)
#print(l)
for p in l:
    temp=0
    k=1
    while True:
        if p**k>N:
            break
        temp += N//(p**k)
        k+=1
    ans = (ans * (temp + 1)) % lim
    #print(N//p + 1)
print(ans)

### FIXED CODE ###

import sys
N=int(input())
if N == 1:
    print(1)
    sys.exit()
lim=10**9+7
import numpy as np
def seachPrimeNum(N):
    max_ = int(np.sqrt(N))
    seachList = [i for i in range(2,N+1)]
    primeNum = []
    while seachList[0] <= max_:
        primeNum.append(seachList[0])
        tmp = seachList[0]
        seachList = [i for i in seachList if i % tmp != 0]
    primeNum.extend(seachList)
    return primeNum

ans = 1
l=seachPrimeNum(N)
#print(l)
for p in l:
    temp=0
    k=1
    while True:
        if p**k>N:
            break
        temp += N//(p**k)
        k+=1
    ans = (ans * (temp + 1)) % lim
    #print(N//p + 1)
print(ans)
s = list(input())

cnt = []
c = 0
for i in s:
    print(i)
    if i == "A" or i == "C" or i == "G" or i =="T":
        c += 1
    else:
        cnt.append(c)
        c = 0

print(max(cnt))


### FIXED CODE ###

s = list(input())

cnt = []
c = 0
for i in s:
    if i == "A" or i == "C" or i == "G" or i == "T":
        c += 1
    else:
        cnt.append(c)
        c = 0
cnt.append(c)

print(max(cnt))
N, K = map(int, input().split())
A = list(map(int, input().split()))
for _ in range(min(K, 50)):
    for i in range(N):
        l = max(0, i - A[i])
        r = min(N - 1, i + A[i])
        B[l] += 1
        if r + 1 < N:
            B[r+1] -= 1
    # 累積和
    for i in range(1, N):
        B[i] += B[i-1]
    A = B.copy()
   
for b in B:
    print(b, end=" ")

### FIXED CODE ###

N, K = map(int, input().split())
A = list(map(int, input().split()))
for _ in range(min(K, 50)):
    B = [0 for k in range(N)]
    for i in range(N):
        l = max(0, i - A[i])
        r = min(N - 1, i + A[i])
        B[l] += 1
        if r + 1 < N:
            B[r+1] -= 1
    # 累積和
    for i in range(1, N):
        B[i] += B[i-1]
    A = B.copy()
   
for b in B:
    print(b, end=" ")
n=int(input())
s=list(input())
out_str=''
for i in s:
  m=ord(i)+n
  if m>90:
    m-=26
  out_str+=chr(m)

print(out_str)

### FIXED CODE ###

s=input()
if s[0]=="S" or s[0]=="T":
  if s[2]=="E":
    print('5')
  elif s[2]=='U':
    print('3')
  elif s[2]=='T':
    print('1')
  else:
    print('7')
else:
  if s[1]=='R':
    print('2')
  elif s[1]=='O':
    print('6')
  else:
    print('4')
import itertools


def out(X):
    return list(itertools.accumulate(X, func=lambda x, y: x * y % mod))[-1]


N, K = [int(_) for _ in input().split()]
A = sorted([int(_) for _ in input().split()], key=lambda x: -abs(x))
mod = 10**9 + 7
cnt = 0
ipos = ineg = -1
for i, a in enumerate(A[:K]):
    if a < 0:
        cnt += 1
        ineg = i
    else:
        ipos = i
if cnt % 2 == 0:
    print(out(A[:K]))
else:
    oneg = opos = -10**10
    for i, a in enumerate(A[K:]):
        if a < 0 and ipos != -1:
            X = A[:ipos] + A[ipos + 1:K] + A[K + i]
            oneg = out(X)
            ipos = -1
        elif a > 0 and ineg != -1:
            X = A[:ineg] + A[ineg + 1:K] + A[K + i]
            opos = out(X)
            ineg = -1
    if oneg != -10**10 or opos != -10**10:
        print(max(opos, oneg))
    else:
        C = A[::-1]
        print(out(C[:K]))


### FIXED CODE ###

import itertools


def out(X):
    return list(itertools.accumulate(X, func=lambda x, y: x * y % mod))[-1]


N, K = [int(_) for _ in input().split()]
A = sorted([int(_) for _ in input().split()], key=lambda x: -abs(x))
mod = 10**9 + 7
cnt = 0
ipos = ineg = -1
for i, a in enumerate(A[:K]):
    if a < 0:
        cnt += 1
        ineg = i
    else:
        ipos = i
if cnt % 2 == 0:
    print(out(A[:K]))
else:
    oneg = opos = -10**10
    for i, a in enumerate(A[K:]):
        if a < 0 and ipos != -1:
            X = A[:ipos] + A[ipos + 1:K] + [A[K + i]]
            oneg = out(X)
            beforeneg = A[ipos]
            afterneg = A[K + i]
            ipos = -1
        elif a > 0 and ineg != -1:
            Y = A[:ineg] + A[ineg + 1:K] + [A[K + i]]
            opos = out(Y)
            beforepos = A[ineg]
            afterpos = A[K + i]
            ineg = -1
    if oneg != -10**10 and opos != -10**10:
        #afterneg/beforeneg > afterpos>beforepos
        if afterneg * beforepos > afterpos * beforeneg:
            print(oneg)
        else:
            print(opos)
    elif oneg != -10**10 or opos != -10**10:
        print(max(opos, oneg))
    else:
        C = A[::-1]
        print(out(C[:K]))
# from operator import mul
# from functools import reduce

n=int(input())
a=list(map(int,input().split()))
limit=10**18

if 0 in a:
    print(0)
    exit()

# ans = 1
# ans = reduce(mul, a) #=> 1320

for i in range(a):
  ans *= a[i]
  if sum>limit:
  # if a[i] == 0:
  #   break
  # elif (ans*a[i]) > limit:
    ans = -1
    break

# if ans > limit:
#   print(-1)
# else:
print(ans)


### FIXED CODE ###

# from operator import mul
# from functools import reduce

n=int(input())
a=list(map(int, input().split()))
# limit=10**18

# if 0 in a:
#     print(0)
#     exit()

ans = 1
# ans = reduce(mul, a) #=> 1320

for i in range(n):
  ans *= a[i]
  if ans > 10 ** 18:
  # if a[i] == 0:
  #   break
  # elif (ans*a[i]) > limit:
    ans = -1
    break

for i in range(n):
  if a[i] == 0:
      ans = 0

# if ans > limit:
#   print(-1)
# else:
print(ans)
import sys

for i,ws in enumerate(sys.stdin,1):
    list = map(int, ws[:-1].split())

    if list[0] == 0 and list[1] == 0:
        break

    print(' '.join(map(str,list.sort())))

### FIXED CODE ###

import sys

for i,ws in enumerate(sys.stdin,1):
    list = sorted(map(int, ws[:-1].split()))

    if list[0] == 0 and list[1] == 0:
        break

    print(' '.join(map(str,list)))
N=int(input())
d=list(map(int,input().split()))
s=0
for i in range(d):
  s+=d[i]*sum(d[i+1:N+1])
print(s)


### FIXED CODE ###

N=int(input())
d=list(map(int,input().split()))
s=0
for i in range(0,N-1):
  s+=d[i]*sum(d[i+1:N])
print(s)
N = int(input())
g = [[] for _ in range(N)]
for i in range(N-1):
    a, b = map(int, input().split())
    a -= 1
    b -= 1
    g[a].append((b, i))
    g[b].append((a, i))

ans = [0] * (N-1)

def dfs(v, c=-1, p=-1):
    global g, ans
    k = 1
    for u, ei in g[v]:
        if u == p:
            continue
        if k == c:
            k += 1
        ans[ei] = k
        k += 1
        dfs(u, ans[ei], v)

dfs(0)
mx = 0
for i in range(N):
    mx = max(mx, len(g[i]))
print(mx)
for i in range(N-1):
    print(ans[i])


### FIXED CODE ###

import sys
sys.setrecursionlimit(10**8)

N = int(input())
g = [[] for _ in range(N)]
for i in range(N-1):
    a, b = map(int, input().split())
    a -= 1
    b -= 1
    g[a].append((b, i))
    g[b].append((a, i))

ans = [0] * (N-1)

def dfs(v, c=-1, p=-1):
    global g, ans
    k = 1
    for u, ei in g[v]:
        if u == p:
            continue
        if k == c:
            k += 1
        ans[ei] = k
        k += 1
        dfs(u, ans[ei], v)

dfs(0)
mx = 0
for i in range(N):
    mx = max(mx, len(g[i]))
print(mx)
for i in range(N-1):
    print(ans[i])
S = input()
S = list(S.replace('RL', '11'))
lp,rp = 0,0
for i,s in enumerate(S):
    #l並びが終わったとき
    if (lp>0)&(!='L'):
        S[i-lp-1] = int(S[i-lp-1])+lp//2
        S[i-lp-2] = int(S[i-lp-2])+lp-lp//2
        lp = 0
    #最後がL(RLで11になっていない)
    if (i==len(S)-1)&(s=='L'):
        lp += 1
        S[i] = 0
        S[i-lp] = int(S[i-lp])+lp//2
        S[i-lp-1] = int(S[i-lp-1])+lp-lp//2
    elif s=='L':
        lp += 1
        S[i] = 0
    elif s=='R':
        rp += 1
        S[i] = 0
    #R並びが終わったとき
    elif rp>0:
        S[i] = int(S[i+1]) + rp//2
        S[i+1] = int(s) + rp-rp//2
        rp = 0
print(' '.join(map(str, S)))

### FIXED CODE ###

S = input()
S = list(S.replace('RL', '11'))
lp,rp = 0,0
for i,s in enumerate(S):
    #l並びが終わったとき
    if (lp>0)&(s!='L'):
        S[i-lp-1] = int(S[i-lp-1])+lp//2
        S[i-lp-2] = int(S[i-lp-2])+lp-lp//2
        lp = 0
    #最後がL(RLで11になっていない)
    if (i==len(S)-1)&(s=='L'):
        lp += 1
        S[i] = 0
        S[i-lp] = int(S[i-lp])+lp//2
        S[i-lp-1] = int(S[i-lp-1])+lp-lp//2
    elif s=='L':
        lp += 1
        S[i] = 0
    elif s=='R':
        rp += 1
        S[i] = 0
    #R並びが終わったとき
    elif rp>0:
        S[i] = int(S[i+1]) + rp//2
        S[i+1] = int(s) + rp-rp//2
        rp = 0
print(' '.join(map(str, S)))
N, M = map(int, input().split())
A = list(map(int, input().split()))
BC0 = [0]*M
for m in range(M):
    BC0[m] = list(map(int, input().split()))
A.sort()
BC0.sort(key=lambda x:x[1])
BC = []
for bc0 in BC0:
    BC = BC + [bc0[1]]*bc0[0]

S = []
while len(S)<N:
    if A[-1] >= BC[-1]:
        S.append(A.pop())
    else:
        S.append(BC.pop())
        
print(sum(S))

### FIXED CODE ###

N, M = map(int, input().split())
A0 = list(map(int, input().split()))
BC = [list(map(int, input().split())) for _ in range(M)]

A = [[1,a] for a in A0] 
ABC = A + BC
ABC.sort(key=lambda x:x[1], reverse=True)

summation = 0
p = 0
n = 0

while n<N:
    summation += ABC[p][1] * (min(ABC[p][0], N-n))
    n += min(ABC[p][0], N-n)
    p += 1

print(summation)
#!/usr/bin/env python3
import sys
input = lambda: sys.stdin.readline()[:-1]
sys.setrecursionlimit(10**8)
inf = float('inf')
mod = 10**9+7

s=int(input())
n=len(s)+1
ans=[0]*n
for i in range(n-1):
    if s[i]=='<':
        ans[i+1]=max(ans[i+1],ans[i]+1)
for i in range(n-2,-1,-1):
    if s[i]=='>':
        ans[i]=max(ans[i+1]-1,ans[i])
print(sum(ans))


### FIXED CODE ###

#!/usr/bin/env python3
import sys
input = lambda: sys.stdin.readline()[:-1]
sys.setrecursionlimit(10**8)
inf = float('inf')
mod = 10**9+7

S=input()
S=">"+S
n=len(S)
data=[0]*n
start=0
minv=0
for i in range(1,n):
    if S[i]=='<':
        data[i]=data[i-1]+1
    if S[i]=='>':
        if S[i-1]=='<':
            # print(minv)
            for k in range(start+1,i):
                data[k]-=minv
            data[start]=max(data[start],data[start+1]+1)
            # print(data,i,minv)
            data[i]=0
            minv=0
            start=i-1
        else:
            data[i]=data[i-1]-1
            minv=min(minv,data[i])
# print(data)
# print(minv,start)
for i in range(start+1,n):
    data[i]-=minv
data[start]=max(data[start],data[start+1]+1)
if S[1]=='<':
    data[0]=0
print(sum(data))
# print(data)
N = int(input())
A = list(map(int, input().split()))
A_re = []

for i in range(N):
  num = A[i]
  A_re.append([num, i+1])
  
A_re.sort()

Ans = []
for j in range(N):
  ans = A_re[j][1]
  Ans.append(ans)
  
print(' '.join(Ans))

### FIXED CODE ###

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

for i in range(N):
  num = A[i]
  A_re.append([num, i+1])
  
A_re.sort()

Ans = []
for j in range(N):
  ans = A_re[j][1]
  Ans.append(str(ans))
  
Ans = ' '.join(Ans)
print(Ans)
N, K, Q=list(map(int,input().split()))
points = K * np.ones(N)
for i in range(Q):
    A = int(input()) - 1
    points -= 1
    points[A] += 1
for i in range(N):
    if points[i] > 0:
        print('Yes')
    else:
        print('No')

### FIXED CODE ###

import numpy as np

N, K, Q=list(map(int,input().split()))
points = K * np.ones(N)
A_list = np.zeros(Q)

for i in range(Q):
    A = int(input()) - 1
    A_list[i] = A

points = points - Q
for i in A_list:
    points[int(i)] += 1

for i in range(N):
    if points[i] > 0:
        print('Yes')
    else:
        print('No')