Harryxun/stf_run huggingface dataset:
H,W,K=[int(s) for s in input().split()]
ls=[input() for i in range(H)]
ans=[[] for i in range(H)]
num=1
s=[] ##イチゴがあるかないか
for i in range(H):
  if '#' in ls[i]:
    s.append(1)
    p=0
    for j in range(W):
      if ls[i][j]=='#':
        if p==0:
          p=1
        else:
          num+=1
      ans[i].append(num)
    num+=1
  else:
    s.append(0)
for i in range(H):
  if s[i]==0:
    for k in range(1,H):
      if s[i+k]==1:
        ans[i]=ans[i+k]
        break
for i in range(1,H):
  if s[-i]==0:
    for k in range(1,H):
      if s[-i-k]==1:
        ans[-i]=ans[-i-k]
        break
  else:
    break
for i in range(H):
  print(*ans[i])
  

### FIXED CODE ###

H,W,K=[int(s) for s in input().split()]
ls=[input() for i in range(H)]
ans=[[] for i in range(H)]
num=1
s=[] ##イチゴがあるかないか
for i in range(H):
  if '#' in ls[i]:
    s.append(1)
    p=0
    for j in range(W):
      if ls[i][j]=='#':
        if p==0:
          p=1
        else:
          num+=1
      ans[i].append(num)
    num+=1
  else:
    s.append(0)
for i in range(H):
  if s[i]==0:
    for k in range(1,H):
      if i+k>=H: break
      if s[i+k]==1:
        ans[i]=ans[i+k]
        break
for i in range(1,H):
  if s[-i]==0:
    for k in range(1,H):
      if i+k>H: break
      if s[-i-k]==1:
        ans[-i]=ans[-i-k]
        break
  else:
    break
for i in range(H):
  print(*ans[i])
import sys
l,r=map(int,sys.stdin.readline().split())
r_m=r%2019
l_m=l%2019
min=2019
if r-l>2019-r_m:
    print(0)
else:
    retu=range(l_m,r_m+1)

    for i in range(len(retu)):
        for j in range(i+1,len(retu)):
            s=retu[i]*retu[j]%2019
            if s<min:
                min=s
print(min)


### FIXED CODE ###

import sys
a,b,c=map(int,sys.stdin.readline().split())
print(min(a*b,c))
W,H,x,y,r = input().split()
w = int()
H = int()
x = int()
y = int()
r = int()
if x + r <= W, y + r <= H:
    print("Yes")
else:
    print("No")


### FIXED CODE ###

w,h,x,y,r = input().split()
w = int(w)
h = int(h)
x = int(x)
y = int(y)
r = int(r)
if x - r >= 0 and y - r >= 0 and x + r <= w and y + r <= h:
    print("Yes")
else:
    print("No")
from collections import Counter
import math
n = int(input())
s = list(map(lambda x: ''.join(sorted(x)) ,[list(input()) for i in range(n)]))
ans = 0
for i in Counter(s).values():
    ans += int(math.factorial(i) / 2)
print(ans) 

### FIXED CODE ###

from collections import Counter
n = int(input())
s = list(map(lambda x: ''.join(sorted(x)) ,[list(input()) for i in range(n)]))
ans = 0
for i in Counter(s).values():
    ans += int(i*(i-1) / 2)
print(ans)
class Dice(object):
	def __init__(self,List):
		self.face=List
	
	def n_spin(List):
		temp=List[0]
		List[0]=List[1]
		List[1]=List[5]
		List[5]=List[4]
		List[4]=temp

	def s_spin(List):
		temp=List[0]
		List[0]=List[4]
		List[4]=List[5]
		List[5]=List[1]
		List[1]=temp

	def e_spin(lList):
		temp=List[0]
		List[0]=List[3]
		List[3]=List[5]
		List[5]=List[2]
		List[2]=temp

	def w_spin(lList):
		temp=List[0]
		List[0]=List[2]
		List[2]=List[5]
		List[5]=List[3]
		List[3]=temp

dice = Dice(map(int,raw_input().split())
command = list(raw_input())
for k in command:
	if k=='N':
		dice.n_spin(dice.face)
	elif k=='S':
		dice.s_spin(dice.face)
	elif k=='E':
		dice.e_spin(dice.face)
	else:
		dice.w_spin(dice.face)
print dice.face[0]

### FIXED CODE ###

class Dice(object):
	def __init__(self,List):
		self.face=List
	
	def n_spin(self,List):
		temp=List[0]
		List[0]=List[1]
		List[1]=List[5]
		List[5]=List[4]
		List[4]=temp

	def s_spin(self,List):
		temp=List[0]
		List[0]=List[4]
		List[4]=List[5]
		List[5]=List[1]
		List[1]=temp

	def e_spin(self,List):
		temp=List[0]
		List[0]=List[3]
		List[3]=List[5]
		List[5]=List[2]
		List[2]=temp

	def w_spin(self,List):
		temp=List[0]
		List[0]=List[2]
		List[2]=List[5]
		List[5]=List[3]
		List[3]=temp

dice = Dice(map(int,raw_input().split()))
command = list(raw_input())
for k in command:
	if k=='N':
		dice.n_spin(dice.face)
	elif k=='S':
		dice.s_spin(dice.face)
	elif k=='E':
		dice.e_spin(dice.face)
	else:
		dice.w_spin(dice.face)
print dice.face[0]
sx,sy,tx,ty=map(int,input().split())
a=tx-sx
b=ty-sy
ans=""

ans="U"*b+"R"*a
ans+="D"*b+"L"*a

ans+="D"+"R"(a+1)+"U"*(b+1)+"L"
ans+="U"+"L"(a+1)+"D"(b+1)+"R"

print(ans)

### FIXED CODE ###

sx,sy,tx,ty=map(int,input().split())
x=tx-sx
y=ty-sy
ans=""

ans="U"*y + "R"*x
ans+="D"*y + "L"*x

ans+="L"+"U"*(y+1)+"R"*(x+1)+"D"
ans+="R"+"D"*(y+1)+"L"*(x+1)+"U"
print(ans)
N, K = input().split()
l = input().split()
l = list(map(int, l))
l.sort(reverse=True)

sum = 0
for i in range(K):
  sum += l[i]

  

### FIXED CODE ###

N, K = input().split()
l = input().split()
l = list(map(int, l))
l.sort(reverse=True)

sum = 0
for i in range(int(K)):
  sum += l[i]

print(sum)
n = print()
a = list(map(int, input().sprit()))
a.reverse()
print(a)

### FIXED CODE ###

n = int(input())
array = list(input().split())
array.reverse()
 
for i in range(n - 1):
    print(array[i] + " ", end = "")

print (array[n - 1])
s = input()
k = int(input())

if k == 1:
  print(int(s[0]))
else:
  i = 0
  while s[i] == '1':
    i += 1
  print(int(s[i]))  

### FIXED CODE ###

s = list(map(int,list(input())))
k = int(input())

a = 0
i = 0

while a < k:
  a += min(s[i]**70, k)
  i +=1

print(s[i-1])
#! /usr/bin/env python3
# -*- coding: utf-8 -*-

W, H, x,y =[int(x) for x in input().split()]

print ((W*H)/2)
if x == int(W/2) and y == int(H/2):
    print(1)
elif: W == 0 or H == 0:
    print(0)
else:
    print(0)




### FIXED CODE ###

#! /usr/bin/env python3
# -*- coding: utf-8 -*-

W, H, x,y =[int(x) for x in input().split()]

print ((W*H)/2)
if x == W/2 and y == H/2:
    print(1)
elif W == 0 or H == 0:
    print(0)
else:
    print(0)
S = [i for i in input()]
if S[0]=="Y" and S[1] == "A" and S[2]=="K" and S[3] == "I":
  print("Yes")
else:
  print("No")

### FIXED CODE ###

S = [i for i in input()]
if len(S)>=4:
  if S[0]=="Y" and S[1] == "A" and S[2]=="K" and S[3] == "I":
    print("Yes")
  else:
    print("No")
else:
  print("No")
import math
from scipy.misc import comb
 
N, M = map(int, input().split())
li1 = []
li2 = []
a = 1

for j in range(2, int(math.sqrt(M))):
    dest = int(math.sqrt(j))
    for i in range(2,dest):
        if j % i == 0:
            continue
    li1.append(j)

for k in range(len(li1)):
    if M % li1[k] != 0:
        continue
    c = 0
    x = M
    while x % li1[k] == 0:
        x = x / li1[k]
        c += 1
    li2.append(c)

for l in range(len(li2)):
    a *= comb(li2[l] + N - 1, N - 1)

print(int(a))

### FIXED CODE ###

l = sorted(list(map(int, input().split())))
print(l[2] * 10 + l[1] + l[0])
s = list(input())
N = len(s)
a = [0] * (1+N)
if(s[0] == '<'): p = 0
else: p = 1
count = 0
count2 = 0
sum_ = 0
start = 0
end = 0
for i in range(N):
    if ((s[i] == '>')& (p == 0)):
        #print('a')
        count2 += 1
        p = 1
        max_ = i
    elif(p == 0):
        #print('b')
        count += 1
    elif(s[i] == '<'):
        #print('c')
        end = i
        if(count > count2):
            t = count
            a[max_] = t
            max_ -= 1
            t -= 1
            while(t >= 0):
                a[max_] = t
                max_ -= 1
                t -= 1
            k = 0
            a[end] = 0
            k += 1
            while(k < count2):
                a[end-k] = k
                k += 1
        else:
            t = count2
            a[max_] = t
            max_ += 1
            t -= 1
            while(t >= 0):
                a[max_] = t
                max_ += 1
                t -= 1
            k = 0
            a[start] = 0
            k += 1
            while(k < count):
                a[start+k] = k
                k += 1
        p = 0
        start = i
        count = 1
        count2 = 0
        max_ = 0
        #print(a)
    else:
        #print('d')
        count2 += 1
        
if(count > count2):
    if(max_==0):
        max_= N
    t = count
    a[max_] = t
    max_ -= 1
    t -= 1
    while(t >= 0):
        a[max_] = t
        max_ -= 1
        t -= 1
    k = 0
    a[end] = 0
    k += 1
    while(k < count2):
        a[end-k] = k
        k += 1
else:
    t = count2
    a[max_] = t
    max_ += 1
    t -= 1
    while(t >= 0):
        a[max_] = t
        max_ += 1
        t -= 1
    k = 0
    a[start] = 0
    k += 1
    while(k < count):
        a[start+k] = k
        k += 1
print(sum(a))

### FIXED CODE ###

s = list(input())
N = len(s)
a = [0] * (10+N)
if(s[0] == '<'): p = 0
else: p = 1
count = 0
count2 = 0
A = 0
start = 0
end = 0

for i in range(N):
    if ((s[i] == '>')& (p == 0)):
        #print('a')
        count2 += 1
        p = 1
        max_ = i
    elif(p == 0):
        #print('b')
        count += 1
    elif(s[i] == '<'):
        #print('c')
        end = i
        if(count > count2):
            count2 -=1
            A += count*(count+1)/2
            A += count2*(count2+1)/2
        else:
            count -=1
            A += count*(count+1)/2
            A += count2*(count2+1)/2
        p = 0
        start = i
        count = 1
        count2 = 0
        max_ = 0
    else:
        #print('d')
        count2 += 1
if(count > count2):
    count2 -=1
    A += count*(count+1)/2
    A += count2*(count2+1)/2
else:
    count -=1
    A += count*(count+1)/2
    A += count2*(count2+1)/2
print(int(A))
a = input
b = input

print(a*b)

print(2a+2b)


### FIXED CODE ###

a,b=map(int,input().split())
print(a*b,2*(a+b))
import math

A,V= map(int, input().split())
B,W= map(int, input().split())
T=int(input())
ans=0

if A>B:
    C=A
    A=B
    B=C

if A==B:
    print("YES")
else:

    if V<=W:
        print("NO")
    else:
        x=(1-(A-B)/(V-W))
        xint=math.floor(1-(A-B)/(V-W))
        A=A+(xint-1)*V
        B=B+(xint-1)*W

        if (xint-1)>T:
            print("NO")
        else:
            
            for i in range (3):
                if A<B:
                    A=A+V
                    B=B+W
                else:
                    A=A-V
                    B=B-W
                if xint+i>T:
                    ans=0
                    break
                if A==B:
                    ans=1
                    break
                
            print("YES" if ans==1 else "NO")


### FIXED CODE ###

S=str(input())
print(S[0:3])
import math

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

print(int(a * b / math.gcd(a, b)))

### FIXED CODE ###

import fractions

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

print(int(a * b / fractions.gcd(a, b)))
import sys

stdin = sys.stdin

ni = lambda: int(ns())
na = lambda: list(map(int, stdin.readline().split()))
ns = lambda: stdin.readline().rstrip()  # ignore trailing spaces

def calc(p, x, li, ans):
    ans[p] += x
    if len(li[p]) == 0:
        return
    for b in li[p]:
        calc(b, x, li, ans)

n, q = na()
li = [[] for i in range(n)]
ans = [0 for i in range(n)]

for i in range(n-1):
    a, b = na()
    li[a-1].append(b-1)

for i in range(q):
    p, x = na()
    calc(p-1, x, li, ans)
print(*ans)







### FIXED CODE ###

import math,string,itertools,fractions,heapq,collections,re,array,bisect,sys,random,time

from collections import deque
sys.setrecursionlimit(10**7)
inf = 10**20
mod = 10**9 + 7

stdin = sys.stdin

ni = lambda: int(ns())
na = lambda: list(map(int, stdin.readline().split()))
ns = lambda: stdin.readline().rstrip()  # ignore trailing spaces

def dfs(v, par):
    for nv in g[v]:
        if nv == par:
            continue
        memo[nv] += memo[v]
        dfs(nv, v)

n, q = na()
g = [deque() for _ in range(n)]
for i in range(n-1):
    a, b = na()
    a -= 1
    b -= 1
    g[a].append(b)
    g[b].append(a)
memo = [0] * n
for i in range(q):
    #seen = [False] * n
    p, x = na()
    p -= 1
    memo[p] += x

dfs(0, -1)
print(*memo)
N = int(input())
A = list[map(int, input().split())]
B = list[map(int, input().split())]
C = list[map(int, input().split())]

total = 0
pos = 0
while pos < N:
  total += B[A[pos] - 1]
  if A[pos + 1] - A[pos] == 1:
    total += C[A[pos + 1] - 2]
  pos += 1
print(total)
   


### FIXED CODE ###

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

total = 0
pos = 0
while pos< N:
	posB = A[pos] -1
	total = total + B[posB]
	if A[pos] - A[pos - 1] == 1 and pos > 0:
		posC = A[pos] - 2
		total = total + C[posC]
	pos += 1
print(total)
n, q = map(int, input().split())
point = [0]*n
graph = [[] for i in range(n)]
visited = [False]*n


def dfs(n):
    visited[n-1] = True
    for node in graph[n-1]:
        if visited[node-1]:
            continue
        point[node-1] += point[n-1]
        dfs(node)


def main():

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

    for i in range(q):
        p, x = map(int, input().split())
        point[p - 1] += x

    dfs(1)

    print(*point)


if __name__ == "__main__":
    main()


### FIXED CODE ###

import sys
sys.setrecursionlimit(10**7)
 
N, Q = map(int, input().split())
root = [[] for _ in range(N)]
ans = [0]*N
 
for _ in range(N-1):
  a,b=map(int, input().split())
  a,b=a-1,b-1
  root[a].append(b)
  root[b].append(a)

for _ in range(Q):
  p,x=map(int, input().split())
  ans[p-1]+=x
  
visited=[False]*N
def dfs(v):
  visited[v] = True
  for go in root[v]:
    if visited[go]:
      continue
    ans[go] += ans[v]
    dfs(go)

dfs(0)
print(*ans)
a = input(int())
b = input(int())
h = input(int())

print((a + b) * h / 2)

### FIXED CODE ###

a = int(input())
b = int(input())
h = int(input())

print(int((a + b) * h / 2))
N, X = map(int, input().split())
L = list(map(int, input().split()))
#print(L)
D = 0
for i in range(N+1):
    if D > X:
        break
    D += L[i]
print(i)

### FIXED CODE ###

N, X = map(int, input().split())
L = list(map(int, input().split()))
D = 0
jump = 1
for i in range(N):
    D += L[i]
    if D > X:
        break
    else:
        jump += 1
print(jump)
N.K=map(int,input().split())
P=sorted(list(map(int,input().split())))
print(sum(P[:K]))

### FIXED CODE ###

N,K=map(int,input().split())
P=sorted(list(map(int,input().split())))
print(sum(P[:K]))
n = int(input())

g = [[0 for _ in range(n)] for _ in range(n)]
for i in range(n - 1):
    u, v, w = map(int, input().split())
    g[u - 1][v - 1] = w
    g[v - 1][u - 1] = w

color = [-1] * n

def dfs(v, cur = 0):
    color[v] = cur

    for next_v in range(n):
        if color[next_v] == -1:
            if g[v][next_v] != 0 and g[v][next_v] % 2 == 0:
                dfs(next_v, cur)
            else:
                dfs(next_v, 1 - cur)

dfs(0)

for c in color:
    print(c)

### FIXED CODE ###

n = int(input())

g = [[] for _ in range(n)]
for i in range(n - 1):
    u, v, w = map(int, input().split())
    g[u - 1].append((v - 1, w))
    g[v - 1].append((u - 1, w))

color = [-1] * n
dist = [0] * n

import queue
def dfs(v):
    color[v] = dist[v] % 2
    q = queue.LifoQueue()
    q.put(v)

    while not q.empty():
        vv = q.get()
        for next_v in g[vv]:
            if color[next_v[0]] == -1 and next_v[1] != 0:
                dist[next_v[0]] = dist[vv] + next_v[1]
                color[next_v[0]] = dist[next_v[0]] % 2
                q.put(next_v[0])

# 0を始点として各点までの距離を求める
dfs(0)

for c in color:
    print(c)
a, b = input().split()

if(a*b % 2 == 0):
	print("Even")
else:
  	print("Odd")

### FIXED CODE ###

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

if((a * b) % 2 == 0):
	print("Even")
else:
  	print("Odd")
s1,s2,s3 = list(map(str,input()))
s1,s2,s3 = map(str.upper())
print( s1[0] + s2[0] + s3[0])

### FIXED CODE ###

s1,s2,s3=map(str,input().upper().split()) #文字列
print(s1[0]+s2[0]+s3[0])
import collections
import numpy as np


def fav(n):
    fav = np.zeros(n+1, dtype=int)

    fav[0] = 1
    for i in range(1, n+1):
        fav[i] = fav[i-1] * i

    return fav


def comb(a, b, fav):
    if a == 0 and b == 0:
        return 1
    if a < 0 or a < b or b < 0:
        return 0

    return int(fav[a] / fav[b] / fav[a-b])


n = int(input())

inputlist = []

for i in range(n):
    inputlist.append("".join(sorted(list(input()))))

counter = collections.Counter(inputlist)

counter = dict(counter)
valuelist = list(map(int, counter.values()))

fav = fav(max(valuelist)+1)

ans = 0

for i in valuelist:
    if i == 1:
        continue
    if i == 2:
        ans += 1
        continue
    ans += comb(i, 2, fav)

print(ans)


### FIXED CODE ###

import collections
import math


n = int(input())

inputlist = []

for i in range(n):
    inputlist.append("".join(sorted(list(input()))))

counter = collections.Counter(inputlist)

counter = dict(counter)
valuelist = list(map(int, counter.values()))

ans = 0

for i in valuelist:
    if i == 1:
        continue
    if i == 2:
        ans += 1
        continue
    temp = math.factorial(i)
    temp /= math.factorial(i-2)
    temp = int(temp / 2)
    ans += temp

print(ans)
n = int(input())
S = [input() for i in range(n)]

ans = 0
start_b = 0
end_a = 0
ab = 0

for i in range(n):
    for j in range(len(S) - 1):
        if S[i][j] + S[i][j + 1] == 'AB':
            ans += 1

    if S[i][0] == 'B' and S[i][-1] == 'A':
        ab += 1
        continue 
    if S[i][0] == 'B':
        start_b += 1
    if S[i][-1] == 'A':
        end_a += 1
    

if ab > 0:
    ans += ab - 1
    if start_b > 0:
        ans += 1
        start_b -= 1
    if end_a > 0:
        ans += 1
        end_a -= 1
        
ans += min(start_b, end_a)

print(ans)

### FIXED CODE ###

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

ans = 0
start_b = 0
end_a = 0
ab = 0

for i in range(n):
    for j in range(len(S) - 1):
        if S[i][j:j+2] == 'AB':
            ans += 1

    if S[i][0] == 'B' and S[i][-1] == 'A':
        ab += 1
        continue 
    if S[i][0] == 'B':
        start_b += 1
    if S[i][-1] == 'A':
        end_a += 1
    

if ab > 0:
    ans += ab - 1
    if start_b > 0:
        ans += 1
        start_b -= 1
    if end_a > 0:
        ans += 1
        end_a -= 1
        
ans += min(start_b, end_a)

print(ans)
N, M , Q = map(int, input().split())

LR = [[0 for _ in range(N+2-i)] for _ in range(N+2)]
for i in range(M):
  L, R = map(int, input().split())
  LR[L][R-L+1] += 1

  
for i in range(2,N+2):
  for j in range(1,N-i+2):
    LR[j][i] += LR[j][i-1] + LR[j+1][i-1] - LR[j+1][i-2]
    
for i in range(Q):
  p, q = map(int, input().split())
  print(LR[p][q-p+1]-LR[q+1][0])


### FIXED CODE ###

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

LR = [[0]*(N+2-i) for i in range(N+2)]
for i in range(M):
  L, R = map(int, input().split())
  LR[L][R-L+1] += 1

  
for i in range(2,N+2):
  for j in range(1,N-i+2):
    LR[j][i] += LR[j][i-1] + LR[j+1][i-1] - LR[j+1][i-2]
    
for i in range(Q):
  p, q = map(int, input().split())
  print(LR[p][q-p+1]-LR[q+1][0])
s=input()
t=input()
if len(t)==1:
  try:
    print(s.index(t)+1)
  except ValueError:
    print(-1)
    exit()
else:
  cd=0
  def cdcd():
    print(-1)
    exit()


  l=list()
  for _ in list(t):
    l.append([i for i,x in enumerate(list(s)) if x==_]) if [i for i,x in enumerate(list(s)) if x==_]!=[] else cdcd
  ed=l[0][0]
  for i in range(len(t))[1:-1]:
    k=l[i]
    if max(k+[ed])==ed :
      cd+=1
    else:
      ex=list(sorted(k+[ed])).index(ed)
      ed=k[ex]
k=l[len(t)-1]
if max(k+[ed])==ed :
  print((cd+1)*len(s)+min(k)+1)
else:
  ex=list(sorted(k+[ed])).index(ed)
  ed=k[ex]
  print((cd)*len(s)+ed+1)

### FIXED CODE ###

def f():
    s,t=input(),input()
    n,m=len(s),len(t)
    table=[[]for i in  range(26)]
    d={'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4, 'f': 5, 'g': 6, 'h': 7, 'i': 8, 'j': 9, 'k': 10, 'l': 11, 'm': 12, 'n': 13, 'o': 14, 'p': 15, 'q': 16, 'r': 17, 's': 18, 't': 19, 'u': 20, 'v': 21, 'w': 22, 'x': 23, 'y': 24, 'z': 25}

    for j in range(n):
        table[d[s[j]]].append(j)
    now=0
    ind=0
    if set(list(t))-set(list(s)):print(-1);exit()
    from bisect import bisect_left as bl
    for p in t:
        if ind>table[d[p]][-1]:now+=1;ind=0
        ind=table[d[p]][bl(table[d[p]],ind)]+1

    print(now*n+ind)
if __name__ == "__main__":
    f()
import sys
sys.setrecursionlimit(10 ** 7)

N,Q = map(int,input().split())
AB = [[int(x) for x in input().split()] for _ in range(N-1)]
PX = [[int(x) for x in input().split()] for _ in range(Q)]

graph = [[] for _ in range(N+1)]
for a,b in AB:
    graph[a].append(b)
    graph[b].append(a)

value = [0] * (N+1)
for p,x in PX:
    value[p] += x

def dfs(v,parent,add):
    value[v] += add
    for x in graph[v]:
        if x == parent:
            continue
        dfs(x,v,value[v])

dfs(1,0,0)

answer = ' '.join(map(str,value[1:]))
print(answer)


### FIXED CODE ###

a=int(input())
s=input()
if a>=3200:
    print(s)
else:
    print('red')
if (a*b)%2 == 1:
  print("Odd")
else:
  print("Even")

### FIXED CODE ###

a,b = map(int,input().split())
K = a*b
if K%2 == 0:
  print("Even")
else:
  print("Odd")
a, b, H, M = map(int, input().rstrip().split())
if H == 0 and M == 0:
    print(0)
else:
    aH = H * 5 + (float(M) / 60 * 5)
    kakudo = abs(aH - M)
    kakudo *= 6
    decimal.getcontext().prec = 30
    val =  math.sqrt(float(a * a) + float(b * b) - 2 * a * b * math.cos(math.radians(kakudo)))
    val = decimal.Decimal(val)
    print(val)
    # print(math.sqrt(float(a * a) + float(b * b) - 2 * a * b * math.cos(math.radians(kakudo))))


### FIXED CODE ###

import math

a, b, H, M = map(int, input().rstrip().split())
if H == 0 and M == 0:
    print(abs(a-b))
else:
    H = H * 5 + (float(M) / 12)
    kakudo = abs(H - M)
    kakudo *= 6
    print(math.sqrt(float(a * a) + float(b * b) - 2 * a * b * math.cos(math.radians(kakudo))))
lst = []

for i in range(10):
    for j in range(10):
        for k in range(10):
            lst.append(str(i)+str(j)+str(k))

N, M = map(int, input().split())
S = []
C = []
for l in range(M):
    S.append(0)
    C.append(0)
    S[l], C[l] = map(int, input().split())
    C[l] = str(C[l])

for n in range(1000):
    for m in range(M):
        if lst[n][S[m]-1] != C[m]:
            lst[n] = "1000"
    lst[n] = int(lst[n])

if min(list) == 1000:
    print(-1)
else:
    print(min(lst))

### FIXED CODE ###

# C - Guess The Number
N, M = map(int, input().split())
SC = [list(map(int, input().split())) for _ in range(M)]

ans = [0,0,0]

# 条件だけで不適がわかるものは弾く
for i in range(M):
    for j in range(i+1,M):
        if (SC[i][0] == SC[j][0]) and (SC[i][1] != SC[j][1]):
            print(-1)
            quit()

# 各桁を指定をする
for k in range(M):
    ans[SC[k][0]-(N-2)] = str(SC[k][1])

# 頭の桁が0で指定されると不適(str型かどうかで判定する)
if (ans[3-N] == "0") and (N == 1):
    print(0)
    quit()
elif ans[3-N] == "0":
    print(-1)
    quit()

# N桁の文字列にする
ans = [str(ans[i]) for i in range(3)]
res = "".join(ans)
res = res[(3-N):4]

# 頭の桁が指定無しの0だったら1に変える
if (res[0] == "0") and (N == 1):
    res = "0"
elif res[0] == "0":
    ref = list(res)
    ref[0] = "1"
    res = "".join(ref)

print(res)
#1,1,1 -> (1,1) 1

#1,2,3 -> (1,3) 2

#1,1,3 -> (1,3) 1  <=> 1,1,3,3 -> (1,3) 1,3

#1,2,1,3,7 == [1:2, 2:1, 3:1, 7:1]
#[1:4, 2:3, 3:2, 5:1, 6:2, 8:2, 11:1]

#それぞれ1または2と等しい
#[1:2, 2:1, 3:2, 5:1, 6:2, 8:2, 11:1]
#[1,1,3,3,6,6,8,8]
#[1,1,3,6,6,8,8]
#[1,3,6,8]

N = int(input())
A = list(map(int, input().split()))
B = [-1 for i in range(100005)]

for i in range(N):
    if B[A[i]] == -1:
        B[A[i]] = 1
    elif B[A[i]] == 1:
        B[A[i]] = 2:
    elif B[A[i]] == 2:
        B[A[i]] = 1

n = N - B.count(-1)

if B.count(2) % 2 == 0:
    print(n)
else:
    print(n-1)


### FIXED CODE ###

#1,1,1 -> (1,1) 1

#1,2,3 -> (1,3) 2

#1,1,3 -> (1,3) 1  <=> 1,1,3,3 -> (1,3) 1,3

#1,2,1,3,7 == [1:2, 2:1, 3:1, 7:1]
#[1:4, 2:3, 3:2, 5:1, 6:2, 8:2, 11:1]

#それぞれ1または2と等しい
#[1:2, 2:1, 3:2, 5:1, 6:2, 8:2, 11:1]
#[1,1,3,3,6,6,8,8]
#[1,1,3,6,6,8,8]
#[1,3,6,8]

N = int(input())
A = list(map(int, input().split()))
B = [-1 for i in range(100005)]

for i in range(N):
    if B[A[i]] == -1:
        B[A[i]] = 1
    elif B[A[i]] == 1:
        B[A[i]] = 2
    elif B[A[i]] == 2:
        B[A[i]] = 1

n = len(B) - B.count(-1)

if B.count(2) % 2 == 0:
    print(n)
else:
    print(n-1)