Harryxun/stf_run huggingface dataset:
(a, b) = [int(i) for i in input()]

while True:
    d = a // b
    r = a % b
    f = a / b
    print( '{0:d} {1:d} {2:.5f}'.format( d, r, f))
    break

### FIXED CODE ###

(a, b) = [int(i) for i in input().split()]
  
while True:
    d = a // b
    r = a % b
    f = a / b
    print( '{0:d} {1:d} {2:.5f}'.format( d, r, f))
    break
def get_ints() :
  list(map(int,input().split()))

a,b,c,d=get_ints()
ans=max(a*c,b*c,a*d,b*d)
print(ans)

### FIXED CODE ###

def get_ints() :
  return list(map(int,input().split()))

a,b,c,d=get_ints()
ans=max(a*c,b*c,a*d,b*d)
print(ans)
#21:30
n = int(input())
peer = [[] for _ in range(n)]
for _ in range(n-1):
  a,b,x = map(int,input().split())
  a -= 1
  b -= 1
  peer[a].append([b,x])
  peer[b].append([a,x])
ans = [-1 for _ in range(n)]
now = [0]
while now != []:
  last = now
  now = []
  for x in last:
    for yz in peer[x]:
      y = yz[0]
      z = yz[1]
      if ans[y] == -1:
        ans[y] = (ans[x] + z) % 2
        now.append(y)
  #print(now)
for i in range(n):
  print(ans[now])

### FIXED CODE ###

#21:30
n = int(input())
peer = [[] for _ in range(n)]
for _ in range(n-1):
  a,b,x = map(int,input().split())
  a -= 1
  b -= 1
  peer[a].append([b,x])
  peer[b].append([a,x])
ans = [-1 for _ in range(n)]
now = [0]
while now != []:
  last = now
  now = []
  for x in last:
    for yz in peer[x]:
      y = yz[0]
      z = yz[1]
      if ans[y] == -1:
        ans[y] = (ans[x] + z) % 2
        now.append(y)
  #print(now)
for i in range(n):
  print(ans[i])
print(input().replace(","," ")

### FIXED CODE ###

print(input().replace(","," "))
a,b,c,x = map(int,[input() for _ in range(4)])
ans=0
for i in range(a+1):
    for j in range(b+1):
        for k in range(c+1):
            if (500*i + 100*j + 50*k == x):
                ans += 1
print(ans)

### FIXED CODE ###

x = int(input())
a = int(input())
b = int(input())

x -= a
while x >= b:
    x -= b
print(x)
from collections import Counter
n = int(input())
s = [sorted([*input()]) for i in range(n)] #[*(hogehoge)]で一文字ずつのリストに！
s2 = [''.join(s[i]) for i in range(n)] #sortのために一文字ごとに区切ってリストのにしたものを一単語に連結
s3 = Counter(s2[i] for i in range(n))#同じものを計数
#print(s2)
#print(s3)
#print(s3.values())

print(sum(map(lambda x : x*(x-1)//2, s3.values())))#lambda式は便利


### FIXED CODE ###

from collections import Counter

n = int(input())
s =  Counter("".join(sorted(input())) for i in range(n))

print(sum(map(lambda x : x * (x - 1) // 2, s.values())))
import sys
from collections import deque

def input():
    return sys.stdin.readline().strip()

def main():
    H,W = map(int,input().split())
    A = [list(input()) for _ in range(H)]

    def bfs(x,y,A):
        que = deque()
        que.append((x,y))

        while que:
            x,y = que.popleft()
 
            for dx,dy in ((-1,0),(1,0),(0,-1),(0,1)):
                sx = x + dx
                sy = y + dy
                if sx < 0 or sx >= H or sy < 0 or sy >= W or A[sy][sx] == '#':
                    continue
                cnt = 1 if A[y][x] == '#' else A[y][x] + 1
                if A[sy][sx] == '.':
                    que.append((sx,sy))
                    A[sy][sx] = cnt
                elif A[sy][sx] > cnt:
                    que.append((sx,sy))
                    A[sy][sx] = cnt

    for x in range(W):
        for y in range(H):
            if A[y][x] == '#':
                bfs(x,y,A)
    ans = 0
    for a in A:
        a = [i if i != '#' else 0 for i in a]
        ans = max(ans,max(a))
    print(ans)

if __name__ == "__main__":
    main()

### FIXED CODE ###

import sys
from collections import deque

def input():
    return sys.stdin.readline().strip()

def main():
    H,W = map(int,input().split())
    A = [list(input()) for _ in range(H)]

    que = deque()
    for x in range(W):
        for y in range(H):
            if A[y][x] == '#':
                que.append((x,y,0))        
    ans = 0
    while que:
        x,y,c = que.popleft()
        for dx,dy in ((-1,0),(1,0),(0,-1),(0,1)):
            sx = x + dx
            sy = y + dy
            if sx < 0 or sx >= W or sy < 0 or sy >= H or A[sy][sx] == '#':
                continue
            if A[sy][sx] == '.':
                que.append((sx,sy,c+1))
                A[sy][sx] = c + 1
                ans = max(ans,c+1)
    print(ans)

if __name__ == "__main__":
    main()
N = int(input())
ans = "No"
for i in range(1,9):
    if N%i == 0:
        ans = "Yes"
print(ans)

### FIXED CODE ###

N = int(input())
ans = "No"
if N <=81:
  for i in range(1,10):
    for j in range(1,10):
      if i*j == N:
        ans = "Yes"
print(ans)
s=[]
x,n=map(int,input().split())
s=list(map(int,input().split()))
slist=sorted(s)

for i in range(0,100):
  for j in range(n):
    if slist[j]==x-i:
        flag=1
    if slist[j]==x+i:
        flag=2
            
  if flag==2:
    flag=0
  elif flag==1:
    print(x+i)
    exit()
  elif flag==0:
    print(x-i)
    exit()

### FIXED CODE ###

s=[]
x,n=map(int,input().split())
if n==0:
  print(x)
  exit()
  
s=list(map(int,input().split()))
slist=sorted(s)
out=0
for i in range(0,1000):
  out=0
  for j in range(n):
    if slist[j]==x-i:
      out=1
  if out !=1:
   print(x-i)
   exit()
  out=0
  for k in range(n):
    if slist[k]==x+i:
      out=1
  if out !=1:
    print(x+i)
    exit()
nums = map(int, input().split(" "))
if nums.count(5) == 2 and nums.count(7) == 1:
  print("YES")
else:
  print("NO")

### FIXED CODE ###

nums = list(map(int, input().split()))
if nums.count(5) == 2 and nums.count(7) == 1:
    print("YES")
else:
    print("NO")
a = input()
b = input()
c = input()
d = input()
e = input()
k = input()

if e -a > k
	print(":(")
else:
	print("Yay!")
    

### FIXED CODE ###

a = int(input())
b = int(input())
c = int(input())
d = int(input())
e = int(input())
k = int(input())

if e - a > k:
	print(":(")
else:
	print("Yay!")
N = int(input())
H = list(map(int, input().split()))

ans = 0
for i in range(0, N):
  for j in range(0, i):
    if N[i] < N[j]:
      break
    if  i == j:
      ans += 1
    
print (ans)


### FIXED CODE ###

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

ans = 1
for i in range(0, N):
  for j in range(0, i):
    if H[j] > H[i]:
      break
    if  j + 1 == i:
      ans += 1
    
print (ans)
n = int(input())

ans = x % 11
sample = 2 * n//11

print(sample if not ans else sample + ans//6 + 1)
    

### FIXED CODE ###

n = int(input())

roll = n // 11 * 2

print(roll if n % 11  == 0 else roll + 1 if n % 11 < 7 else roll + 2 )
S = input()
if int(S[2:]) >= 1 and int(S[2:]) <= 12:
    if int(S[:2]) <= 12 and int(S[:2]) >= 1:
        print('AMBIGUOUS')
    else:
        print('YYMM')
elif int(S[2:]) >= 13:
    if int(S[:2]) >= 1 and int(S[:2]) <= 12:
        print('MMYY')
    else:
        print('NA')
else:
    if int(S[:2]) >= 1 and int(S[:2] <= 12):
        print('MMYY')
    else:
        print('NA')

### FIXED CODE ###

S = input()
if int(S[2:]) >= 1 and int(S[2:]) <= 12:
    if int(S[:2]) <= 12 and int(S[:2]) >= 1:
        print('AMBIGUOUS')
    else:
        print('YYMM')
elif int(S[2:]) >= 13:
    if int(S[:2]) >= 1 and int(S[:2]) <= 12:
        print('MMYY')
    else:
        print('NA')
else:
    if int(S[2:]) == 0:
        if int(S[:2]) >= 1 and int(S[:2]) <= 12:
            print('MMYY')
        else:
            print('NA')
    else:
        print('NA')
# coding: utf-8
# Your code here!

import sys
readline = sys.stdin.readline
read = sys.stdin.read

n,*p = map(int,read().split())
N = n*n

dist = [0]*N

for a in range(n):
    for b in range(n):
        dist[a*n+b] = min(a,n-1-a,b,n-1-b)

#print(dist)


#ans = [0]*N
ans = 0
iru = [1]*N

move = [-n,-1,1,n]
for pi in p:
    pi -= 1

    ans += dist[pi]
    iru[pi] = 0

    q = [pi]
    #更新
    
    while q:
        #print(q)
        v = q.pop()
        for i in range(4):
            if i==2 and v%n==n-1: continue
            if i==1 and v%n==0: continue
            nv = v+a[i]
            if 0 <= nv < N and dist[nv] > dist[v] + iru[v]:
                q.append(nv)
                dist[nv] = dist[v] + iru[v]
        
                    
    #print(dist)        

print(ans)
if n==3: print(1)








### FIXED CODE ###

# coding: utf-8
# Your code here!

import sys
readline = sys.stdin.readline
read = sys.stdin.read

n,*p = map(int,read().split())
N = n*n

dist = [0]*N

for a in range(n):
    for b in range(n):
        dist[a*n+b] = min(a,n-1-a,b,n-1-b)

#print(dist)


#ans = [0]*N
ans = 0
iru = [1]*N

for pi in p:
    pi -= 1

    ans += dist[pi]
    iru[pi] = 0

    q = [pi]
    #更新
    
    while q:
        #print(q)
        v = q.pop()
        for i in [-n,-1,1,n]:
            if i==1 and v%n==n-1: continue
            if i==-1 and v%n==0: continue
            nv = v+i
            if 0 <= nv < N and dist[nv] > dist[v] + iru[v]:
                q.append(nv)
                dist[nv] = dist[v] + iru[v]
        
                    
    #print(dist)        

print(ans)
N = int(input())
As = list(map(int, input().split()))
sort_as = sorted(As)
shine = [x + 1 for x in range(N)]
c = 0
s = 0
j = 0
for x in range(N):
  if len(As) == 0:
    print(0)
    continue
  for y in range(len(As)):
    if shine[x] == As[y]:
      c += 1
  print(c)
  c = 0
  if len(As) != 0:
    As.remove(shine[x])


### FIXED CODE ###

n = int(input())
As = list(map(int, input().split()))
 
x = [0] * n
for i in As:
    x[i-1] += 1
for y in x:
    print(y)
import sys
input = sys.stdin.readline

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

COUNT = [0, 2, 5, 5, 4, 5, 6, 3, 7, 6]

dic = {}
for a in A:
    dic[COUNT[a]] = a

C = sorted(dic.keys(), key=lambda x: -dic[x])
min_c = min(C)
C.remove(min_c)
#print(C)

def dfs(remain, l, now, L):
    #print(remain, l, now)
    if remain == 0:
        L.append(now)
        return L
    if l == len(C):
        return L
    loop = remain//(C[l]-min_c)
    for h in reversed(range(loop+1)):
        L = dfs(remain-(C[l]-min_c)*h, l+1, now+[dic[C[l]]]*h, L)
    return L


k = 0
while True:
    r = N%min_c + k*min_c
    p = N//min_c - k
    if r == 0:
        ans = {dic[min_c]: p}
        break
    L = dfs(r, 0, [], [])
    #print(L)
    ans = []
    for now in L:
        l = len(now)
        if l > p: continue
        P = sorted(now+[dic[min_c]]*(p-l), reverse=True)
        #print(P)
        if not ans:
            ans = P
            continue
        ok = True
        for i in range(p):
            if P[i] < ans[i]:
                ok = False
                break
            elif P[i] > ans[i]:
                ok = True
                break
        if ok:
            ans = P

    if ans: break
    k += 1

ans.sort(reverse=True)
print("".join([str(a) for a in ans]))

### FIXED CODE ###

import sys
input = sys.stdin.readline

NUM = [0, 2, 5, 5, 4, 5, 6, 3, 7, 6]
INF = 10**14

N, M = map(int, input().split())
A = list(map(int, input().split()))
A.sort(reverse=True)

dp = [-INF]*(N+1)
dp[0] = 0
for i in range(N):
    for a in A:
        c = NUM[a]
        if i + c <= N:
            dp[i+c] = max(dp[i+c], dp[i]+1)

D = dp[N]
ind = N
ans = ''
for _ in range(D):
    for a in A:
        c = NUM[a]
        if ind - c < 0: continue
        if dp[ind] == dp[ind-c] + 1:
            ind -= c
            ans += str(a)
            break
print(ans)
import sys

A, B = sys.stdin.readline().strip().split()
print(max(A-2B, 0))

### FIXED CODE ###

import sys

A, B = [int(n) for n in sys.stdin.readline().strip().split()]
print(max(A-2*B, 0))
r = list(map(int,input().split()))
a = r[0]
b = r[1]
c = r[2:]




while b > 0:
    a -= c[b]
    b -= 1
    
    if a < 0:
        print('-1')
    
    print(a)



### FIXED CODE ###

a,b = (map(int,input().split()))
c = list(map(int,input().split()))
d = sum(c)

if (a-d) < 0:
    print(-1)
else:
    print(a-d)
import fractions

def GCD(a,b,c):
    return fractions.gcd(math.gcd(a,b),c)

k = int(input())
ans = 0
for i in range(1,k+1):
    for j in range(1,k+1):
        for k in range(1,k+1):
            ans += GCD(i,j,k)
print(ans)


### FIXED CODE ###

import math

def GCD(a,b,c):
    return math.gcd(math.gcd(a,b),c)

k = int(input())
ans = 0
for i in range(1,k+1):
    for j in range(1,k+1):
        for k in range(1,k+1):
            ans += GCD(i,j,k)
print(ans)
N, M = map(int,input().split())
good = [0]*N

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

for j in range(M):
  a, b = map(int,input().split())
  if(H[a-1] == H[b-1]):
    good[a-1] += 1
    good[b-1] += 1
  elif(H[a-1] < H[b-1]):
    good[a-1] += 1
  elif(H[b-1] < H[a-1]:
    good[b-1] += 1
count = 0
for i in range(N):
  if(good[i] == 0):
    count += 1
print(count)

### FIXED CODE ###

N, M = map(int,input().split())
good = [0]*N

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

for j in range(M):
  a, b = map(int,input().split())
  if(H[a-1] == H[b-1]):
    good[a-1] += 1
    good[b-1] += 1
  elif(H[a-1] < H[b-1]):
    good[a-1] += 1
  else:
    good[b-1] += 1
count = 0
for i in range(N):
  if(good[i] == 0):
    count += 1
print(count)
S = input()

key = list("keyence")

k = 0
f = True
cnt = 0
for i in range(len(S)):
    if S[i] == key[k]:
        f = True
        k+=1
    else:
        if f :
            cnt+=1
        f = False
        

if cnt >1 or k != len(key):
    print("NO")
else:
    print("YES")

### FIXED CODE ###

S = input()

key = list("keyence")
target = 'keyence'

flg = False
for i in range(len(S)):
    for j in range(len(S)):
        tmp = S[0:i]+S[j:]

        if tmp == target and not flg:
            print("YES")
            flg = True
            break

if not flg:
    print("NO")
a,b = map(int,input().split())
if hex(a) == hex(b):
  print("=")
elif hex(a) > hex(b):
  print(">")
else:
  print("<")


### FIXED CODE ###

a,b = map(str,input().split())
if ord(a) == ord(b):
  print("=")
elif ord(a) > ord(b):
  print(">")
else:
  print("<")
N = input()
List = [int(i) for i in input().split()]



ans = 10**18
def rally(p):
    n = 0
    for a in range(N):
        n += (p-List[a])**2
    return n

for i in range(1,101):
    ans = min(rally(i),ans)

print(ans)


### FIXED CODE ###

N = int(input())
List = [int(i) for i in input().split()]


ans = 10**18
def rally(p):
    n = 0
    for a in range(N):
        n += (int(p)-List[a])**2
    return n

for i in range(1,101):
    ans = min(rally(i),ans)

print(ans)
from sys import stdin
input = list(stdin.readline().rstrip())

n = len(input)

if n % 2 == 1:
    del input[n//2]
    n = len(input)
cnt = 0
for i in range(n/2-1, -1, -1):
    print(i, n-i-1)
    if input[i] != input[n-i-1]:
        cnt += 1

print(cnt)

### FIXED CODE ###

from sys import stdin
input = list(stdin.readline().rstrip())

n = len(input)

if n % 2 == 1:
    del input[n//2]
    n = len(input)
cnt = 0
for i in range(int(n/2)-1, -1, -1):
    if input[i] != input[n-i-1]:
        cnt += 1

print(cnt)
n = int(input())
a = list(map(int, input().split()))
d = [None]*(n+1)**2
def judge(l,r):
  if l >= r:
    return a[l]
  v = l + r*(n+1)
  if d[v] is not None: return d[v]
  d[v] = max(a[l] - judge(l+1,r), a[r] - judge(l,r-1))
  return d[v]

print(judge(0,n-1))


### FIXED CODE ###

n = int(input())
a = list(map(int, input().split()))
dp = [[None]*n for _ in range(n)]
for d in range(n):
  for l in range(n-d):
    r = l + d
    if d:
      dp[l][r] = max(a[l] - dp[l+1][r], a[r] - dp[l][r-1])
    else:
      dp[l][r] = a[l]
print(dp[0][n-1])
n,a,b,c,d = map(int,input().split())
s = input().split('.')

e = 'Yes'
f = 0
g = 0

if c<d:
    for i in range(a-1,c-1):
        if s[i]=='#' and s[i+1]=='#':
            e ='No'
        else:
            for j in range(b-1,d-1):
                if s[j]=='#' and s[j+1]=='#':
                    e ='No'
                        
if c>d:
    for i in range(a-1,d-1):
        if s[i]=='#' and s[i+1]=='#':
            f =1
    
    for j in range(a-1,d-2):
        if s[j]=='' and s[j+1]=='' and s[j+2]=='':
            g = 0
        else:
            g = 1
            
if g==1 or f==1:
    e ='No'

print(e)   

### FIXED CODE ###

n,a,b,c,d = map(int,input().split())
s = input()

e = 'Yes'
f = 0
g = 1

if c < d:
    for i in range(b-1,d-1):
        if s[i]=='#' and s[i+1]=='#':
            e ='No'
    if e =='Yes':
        for j in range(a-1,b-1):
            if s[j]=='#' and s[j+1]=='#':
                e ='No'
                        
if c > d:
    for i in range(a-1,c-1):
        if s[i]=='#' and s[i+1]=='#':
            f = 1
    
    for j in range(b-2,d-1):
        if s[j]=='.' and s[j+1]=='.' and s[j+2]=='.':
            g = 0

    if g == 0 and f ==0:
        e ='Yes'
    else:
        e ='No'
            
print(e)
A,B= [int(s) for s in input().split()]
x=1
if B=1:
  print(0)
else:
  for i in range(100):
    x+=A-1
    if x>=B:
      break
  print(i+1)

### FIXED CODE ###

A,B= [int(s) for s in input().split()]
i=0
while(True):
  if B<=1:
    break
  B-=A-1
  i+=1
print(i)
from collections import deque
from heapq import heapify,heappop,heappush
n = int(input())
data = [[] for _ in range(n)]
color = [[-1]*n for _ in range(n)]
sides = []
for _ in range(n-1):
    a,b = map(int,input().split())
    a,b = a-1,b-1
    data[a].append(b)
    data[b].append(a)
    sides.append((a,b))
kinds = -1
m = -1
for i in range(n):
    if kinds < len(data[i]):
        kinds = len(data[i])
        m = i
unused = [[i for i in range(1,kinds+1)] for _ in range(n)]
against = [[] for _ in range(n)]
for i in range(n):
    heapify(unused[i])
    heapify(against[i])
print(kinds)
q = deque([m])
visited = [0]*n
while q:
    p = q.popleft()
    visited[p] = 1
    for i in data[p]:
        if visited[i]:
            continue
        while against[p] and (unused[p][0] == against[p][0]):
            heappop(against[p])
            heappop(unused[p])
        color[p][i] = unused[p][0]
        color[i][p] = unused[p][0]
        q.append(i)
        heappush(against[i],heappop(unused[p]))
for i,j in sides:
    print(color[i][j])

### FIXED CODE ###

from collections import deque,defaultdict
n = int(input())
data = [[] for _ in range(n)]
sides = []
for _ in range(n-1):
    a,b = map(int,input().split())
    a,b = a-1,b-1
    data[a].append(b)
    data[b].append(a)
    sides.append((a,b))
I = defaultdict(lambda:0)
cs = [0]*n
used = [0]*n
q = deque([0])
used[0]=1
k = 0
while q:
    u = q.popleft()
    if k < len(data[u]):
        k = len(data[u])
    cur = 1
    for v in data[u]:
        if used[v]:continue
        if cur==cs[u]:cur+=1
        cs[v] = cur
        I[(u,v)] = cur
        I[(v,u)] = cur
        cur += 1
        used[v] = 1
        q.append(v)
print(k)
for i,j in sides:
    print(I[(i,j)])
a=list(map(int,input().split()))
print((a[0]+a[2]=2*a[1]?Yes:No))

### FIXED CODE ###

a,b,c=map(int,input().split())
if a+c==2*b:
  print("YES")
else:
  print("NO")
from fractions import gcd
from functools import reduce
input()
print(reduce(gcd,list(map(int,input().split()))))

### FIXED CODE ###

a, b = map(int, input().split())
print(a + b if b % a == 0 else b - a)
INF=float('inf')
N=int(input())
A=list(map(int,input().split()))
dp=[[-INF for i in range(16001)] for i in range(N+1)]
dp[0][0]=1000#dp[i][j]=i日目に株をj個持っているときの最大所持金

for i in range(N):
    for j in range(16001):
        if dp[i][j]==-INF:
            continue
        for x in range(j+1):
            if j-x>=0:
                dp[i+1][j-x]=max(dp[i][j]+A[i]*x,dp[i+1][j-x])
            else:
                break
        for x in range(1000000):
            if dp[i][j]-A[i]*x>=0:
                dp[i+1][j+x]=max(dp[i][j]-A[i]*x,dp[i+1][j+x])
            else:
                break
print(max(dp[N]))

### FIXED CODE ###

N=int(input())
A=list(map(int,input().split()))
money=1000;kabu=0
i=0
while(i<N):
    j=i
    money,kabu=money-(money//A[i])*A[i],kabu+(money//A[i])
    while(j<N-1 and A[j]<=A[j+1]):
        j+=1
    money=money+kabu*A[j]
    kabu=0
    i=j+1
print(money)
yukichi = -1
higuchi = -1
noguchi = -1


def check(n,y,a,b,c):
    if n==0:
        if y==0:
            global yukichi,higuchi,noguchi
            yukichi = a
            higuchi = b
            noguchi = c
            
    else:
        check(n-1,y-10000,a+1,b,c)
        check(n-1,y-5000,a,b+1,c)
        check(n-1,y-1000,a,b,c+1)


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

check(n,y,0,0,0)

print("{} {} {}".format(yukichi,higuchi,noguchi))


### FIXED CODE ###

n,y = map(int,input().split())
yukichi = -1
higuchi = -1
noguchi = -1
for i in range(n+1):
    for j in range(n+1-i):
        if 10000*i+5000*j+1000*(n-i-j)==y:
            yukichi = i
            higuchi = j
            noguchi = n-i-j

print("{} {} {}".format(yukichi,higuchi,noguchi))
import math as m
n=int(input())
a=input().split()
b=1
for i in a:
    i=int(i)
    b*=i//m.gcd(b,i)
    
print(sum(b//int(i) for i in a)%(10**9+7)) 

### FIXED CODE ###

from fractions import *
n,*a=map(int,open(0).read().split())
b=1
for i in a:b*=i//gcd(b,i)
print(sum(b//i for i in a)%(10**9+7))
# coding=utf-8
get = lambda: int(raw_input().strip())
gets = lambda: map(int, raw_input().strip().split())
getss = lambda x: [gets() for _ in xrange(x)]
getl = lambda x: [gets() for _ in xrange(x)]

m, n = gets()
A0 = [list(raw_input().strip()) for _ in xrange(n)]

for i in xrange(m):
    for j in xrange(n):
        if A0[i][j] == '.':
            A0[i][j] = 0
        else:
            A0[i][j] = -1


def test(i, j):
    # print '\ntest ', i, j
    A = [row[:] for row in A0]
    bfs = [[i, j]]
    A[i][j] = 1
    dep = 0
    while bfs:
        dep += 1
        bfs2 = []
        for i, j in bfs:
            for di, dj in [[0, -1], [0, 1], [-1, 0], [1, 0]]:
                i2, j2 = i + di, j + dj
                if 0 <= i2 < m and 0 <= j2 < n and A[i2][j2] == 0:
                    A[i2][j2] = dep + 1
                    bfs2.append([i2, j2])
        bfs = bfs2
    # print A
    return dep


res = 0
for i in xrange(m):
    for j in xrange(n):
        if A0[i][j] < 0: continue
        res = max(res, test(i, j) - 1)
print res


### FIXED CODE ###

# coding=utf-8
get = lambda: int(raw_input().strip())
gets = lambda: map(int, raw_input().strip().split())
getss = lambda x: [gets() for _ in xrange(x)]
getl = lambda x: [gets() for _ in xrange(x)]


m, n = gets()
A0 = [list(raw_input().strip()) for _ in xrange(m)]

for i in xrange(m):
    for j in xrange(n):
        if A0[i][j] == '.':
            A0[i][j] = 0
        else:
            A0[i][j] = -1


def test(i, j):
    # print '\ntest ', i, j
    A = [row[:] for row in A0]
    bfs = [[i, j]]
    A[i][j] = 1
    dep = 0
    while bfs:
        dep += 1
        bfs2 = []
        for i, j in bfs:
            for di, dj in [[0, -1], [0, 1], [-1, 0], [1, 0]]:
                i2, j2 = i + di, j + dj
                if 0 <= i2 < m and 0 <= j2 < n and A[i2][j2] == 0:
                    A[i2][j2] = dep + 1
                    bfs2.append([i2, j2])
        bfs = bfs2
    # for row in A:
    #     print row
    # print
    return dep


res = 0
for i in xrange(m):
    for j in xrange(n):
        if A0[i][j] < 0: continue
        res = max(res, test(i, j) - 1)
print res
if int(a) % 2 == 0 or int(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')