Harryxun/stf_run huggingface dataset:
N, M = map(int, input().split())
edge = [[] for _ in range(N)]
for i in range(M):
    a,b = map(int, input().split())
    edge[a-1].append(b-1)

def dp(v,dpv,e):
    if dpv[v] != -1:
        return dpv[v]
    if len(e[v])==0:
        dpv[v]=0
        return 0
    res = 0
    for w in e[v]:
        res = max(dp(w,dpv,e),res)
    res += 1
    dpv[v] = res
    return res

def solve(edge):
    dpv = [-1]*N
    for i in range(N):
        dp(i,dpv,edge)
    ans = max(dpv)
    # print(dpv)
    return ans
print(solve(edge))

### FIXED CODE ###

import sys
sys.setrecursionlimit(100000)
N, M = map(int, input().split())
edge = [[] for _ in range(N)]
for i in range(M):
    a,b = map(int, input().split())
    edge[a-1].append(b-1)

def dp(v,dpv,e):
    if dpv[v] != -1:
        return dpv[v]
    if len(e[v])==0:
        dpv[v]=0
        return 0
    res = 0
    for w in e[v]:
        res = max(dp(w,dpv,e),res)
    res += 1
    dpv[v] = res
    return res

def solve(edge):
    dpv = [-1]*N
    for i in range(N):
        dp(i,dpv,edge)
    ans = max(dpv)
    # print(dpv)
    return ans
print(solve(edge))
n=int(input())
s=input()
x=0
a=[]
for i in range(n):
    if s[i]==I:
        x+=1
    else:
        x-=1
    a.append(x)
print(max(a))

### FIXED CODE ###

n=int(input())
s=input()
x=0
a=[0]
for i in range(n):
    if s[i]=="I":
        x+=1
    else:
        x-=1
    a.append(x)
print(max(a))
import math
import bisect

n = int(input())
alist = [0]+list(map(int,input().split()))
uv_list = []
for i in range(n-1):
    u,v = map(int,input().split())
    uv_list.append([u,v])

tree = [[] for _ in range(n+1)]
parent = [0]+[-1]*(n)
node_used = set()
for i in range(n-1):
    uv = uv_list[i]
    tree[uv[0]].append(uv[1])
    parent[uv[1]] = uv[0]
    node_used.add(uv[1])

for i in range(n+1):
    if parent[i] == -1:
        root = i
queue = [root]
used = [0]*(n+1)
ans = [0]*(n+1)
dp = []
stack = []
while queue != []:
    cur = queue[-1]

    if used[cur] == 0:
        if cur == 1:
            dp.append(alist[cur])
            stack.append([len(dp)-1,None])
        else:
            if alist[cur] > dp[-1]:
                dp.append(alist[cur])
                stack.append([len(dp)-1,None])
            else:
                offset = bisect.bisect_left(dp,alist[cur])
                stack.append([offset,dp[offset]])
                dp[offset] = alist[cur]
        ans[cur] = len(dp)

    if tree[cur] != [] and used[cur] == 0:
        queue.extend(tree[cur])
    else:
        queue.pop()

        #reverse
        back = stack.pop()
        if back[1] == None:
            dp.pop()
        else:
            dp[back[0]] = back[1]
    used[cur] = 1

for i in range(n):
    print(ans[i+1])


### FIXED CODE ###


import math
import bisect

n = int(input())
alist = [0]+list(map(int,input().split()))
uv_list = []
for i in range(n-1):
    u,v = map(int,input().split())
    if u > v:
        u, v = v, u
    uv_list.append([u,v])

tree = [[] for _ in range(n+1)]
for i in range(n-1):
    uv = uv_list[i]
    tree[uv[0]].append(uv[1])
    tree[uv[1]].append(uv[0])
    

queue = [1]
used = [0]*(n+1)
ans = [0]*(n+1)
dp = []
stack = []
while queue != []:
    cur = queue[-1]

    if used[cur] == 0:
        if cur == 1:
            dp.append(alist[cur])
            stack.append([len(dp)-1,None])
        else:
            if alist[cur] > dp[-1]:
                dp.append(alist[cur])
                stack.append([len(dp)-1,None])
            else:
                offset = bisect.bisect_left(dp,alist[cur])
                stack.append([offset,dp[offset]])
                dp[offset] = alist[cur]
        ans[cur] = len(dp)

    if tree[cur] != [] and used[cur] == 0:
        for child in tree[cur]:
            if used[child] == 0:
                queue.append(child)
    else:
        queue.pop()

        #reverse
        back = stack.pop()
        if back[1] == None:
            dp.pop()
        else:
            dp[back[0]] = back[1]
    used[cur] = 1
for i in range(n):
    print(ans[i+1])
import numpy as np

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

players_score = np.array([k for i in range(k)])
# correct_ans = np.array([1 for i in range(q)])
for item in a:
    players_score -= 1
    players_score[item-1] += 1

indict = ['No' if i <= 0 else 'Yes' for i in players_score ]
for i in indict:
    print(i)

### FIXED CODE ###

import numpy as np

n, k, q = map(int, input().split())
a = np.array([int(input()) for i in range(q)])

players_score = np.full(n, k-q)

for item in a:
    players_score[item-1] += 1

for i in players_score:
    if i <= 0:
        print("No")
    else:
        print("Yes")
N = int(input())
task = []
for i in range(N):
  M = list(map(int,input().split()))
  M[0],M[1]=M[1],M[0]
  task.append(M)
task.sort()
K = 0
ans = 1
for i in range(N):
  K += task[i,1]
  if (K>task[i,0]):
    ans = 0
    break
if ans:
  print("Yes")
else:
  print("No")
  

### FIXED CODE ###

N = int(input())
task = []
for i in range(N):
  M = list(map(int,input().split()))
  M[0],M[1]=M[1],M[0]
  task.append(M)
task.sort()
K = 0
ans = 1
for i in range(N):
  K += task[i][1]
  if (K>task[i][0]):
    ans = 0
    break
if ans:
  print("Yes")
else:
  print("No")
int x = int(input())
if x >= 30:
  print("Yes")
else:
  print("No")

### FIXED CODE ###

x = int(input())
if x >= 30:
  print("Yes")
else:
  print("No")
import numpy as np

temp=list(map(int, input().split()))
N=temp[0]
Q=temp[1]

matrix=np.zeros((N, N))
for i in range(N):
  matrix[i, i]=1

for i in range(N-1):
  temp=list(map(int, input().split()))
  matrix[temp[0]-1, temp[1]-1]=1
  
index=N-1
while index>=0:
  matrix[index, :]+=np.sum(matrix*matrix[index, :].reshape(-1, 1), axis=0)
  index-=1
  
matrix[matrix>0]=1

counter=np.zeros(N)
for i in range(Q):
  temp=list(map(int, input().split()))
  counter+=matrix[temp[0]-1, :]*temp[1]
  
print(' '.join(map(str, map(int, counter.tolist()))))

### FIXED CODE ###

import sys
sys.setrecursionlimit(10**6)

def input():
  return sys.stdin.readline()[:-1]

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

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

px=[list(map(int, input().split())) for i in range(Q)]

counter=[0]*(N+1)
for i in range(Q):
  counter[px[i][0]]+=px[i][1]
  
def f(num, prenum=-1, p=0):
  counter[num]+=p
  for postnum in link[num]:
    if postnum==prenum:
      continue
    f(postnum, num, counter[num])
    
f(1)

print(*counter[1:])
X,Y = list(map(int,input().split()))

class ModComb:
    def __init__(self, MAX, mod=10 ** 9 + 7):
        fac = [1, 1]
        finv = [1, 1]
        inv = [0, 1]
        for i in range(2, MAX):
            fac.append(fac[i - 1] * i % mod)
            inv.append(mod - inv[mod % i] * (mod // i) % mod)
            finv.append(finv[i - 1] * inv[i] % mod)
        self.fac, self.finv, self.mod = fac, finv, mod
    
    def nCk(self, n, k):
        if n < k or n < 0 or k < 0:
            return 0
        fac, finv, mod = self.fac, self.finv, self.mod
        return fac[n] * (finv[k] * finv[n - k] % mod) % mod
      
if (X+Y)%3 != 0:
    print(O)
else:
    n = (-X+2*Y)//3
    m = (2*X-Y)//3
    
    mod = 10 ** 9 + 7
    mc = ModComb(1000000, mod=mod) 

    print(mc.nCk(n+m, n) % mod)

### FIXED CODE ###

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

class ModComb:
    def __init__(self, MAX, mod=10 ** 9 + 7):
        fac = [1, 1]
        finv = [1, 1]
        inv = [0, 1]
        for i in range(2, MAX):
            fac.append(fac[i - 1] * i % mod)
            inv.append(mod - inv[mod % i] * (mod // i) % mod)
            finv.append(finv[i - 1] * inv[i] % mod)
        self.fac, self.finv, self.mod = fac, finv, mod
 
    def nCk(self, n, k):
        if n < k or n < 0 or k < 0:
            return 0
        fac, finv, mod = self.fac, self.finv, self.mod
        return fac[n] * (finv[k] * finv[n - k] % mod) % mod

if (x+y)%3!=0:
    print(0)
else:
    a = (2*x - y) // 3
    b = (2*y - x) // 3

    mod = 10 ** 9 + 7
    mc = ModComb(1000000, mod=mod) 

    print(mc.nCk(a + b, a) % mod)
k,s = [int(i) for i in input().split()]
def a(n):
return int(n * (n + 1) / 2)
  
if s <= k:
  print(a(s + 1))
elif s >= 2 * k and s <= 3 * k:
  print(a(3 * k - s + 1))
elif s > k and s < 2 * k:
  print(a(s + 1) - 3 * a(s - k))
else:
  print(0)

### FIXED CODE ###

k,s = [int(i) for i in input().split()]
def a(n):
  return int(n * (n + 1) / 2)
  
if s <= k:
  print(a(s + 1))
elif s >= 2 * k and s <= 3 * k:
  print(a(3 * k - s + 1))
elif s > k and s < 2 * k:
  print(a(s + 1) - 3 * a(s - k))
else:
  print(0)
import math

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

g = 0
for i in range(N):
    g = math.gcd(g, A[i])

print(g)

### FIXED CODE ###

from fractions import gcd

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

g = [0] * (N + 1)
for i in range(N):
    g[i+1] = gcd(g[i], A[i])

print(g[-1])
n, m = map(int, input().split())
A = list(map(int, input().split()))

A.sort(reverse=True)

if A[m] >= (sum(A) // (4 * m)):
    print("Yes")
else:
    print("No")

### FIXED CODE ###

n, m = map(int, input().split())
A = list(map(int, input().split()))

A.sort(reverse=True)

if A[m-1] >= (sum(A)/(4*m)):
    print("Yes")
else:
    print("No")
import collections
N = int(input())
A = []
B = []
YHASHNUM = 1000000000
for i in range(N):
    A.append(list(map(int, input().split())))
#print(N, A)
for i in A:
    #print(i[0], i[1])
    for j in A:
        if i == j:
            continue
        B.append(i[0] - j[0] + (i[1] - j[1]) * YHASHNUM)
#print(B)
C = collections.Counter(B)
print(N - C.most_common()[0][1])




### FIXED CODE ###

import collections
N = int(input())
A = []
B = []
YHASHNUM = 1000000000
for i in range(N):
    A.append(list(map(int, input().split())))
#print(N, A)
if N == 1:
    print(1)
else:
    for i in A:
        #print(i[0], i[1])
        for j in A:
            if i == j:
                continue
            B.append(i[0] - j[0] + (i[1] - j[1]) * YHASHNUM)
    #print(B)
    C = collections.Counter(B)
    print(N - C.most_common()[0][1])
from math import floor,ceil
    h,w=map(int,input().split())
    if h == 1 or w == 1:
        print(1)
    else:
        m =ceil(w/2) * ceil(h/2) + floor(w/2) * floor(h/2)
        print(m)

### FIXED CODE ###

a,b =map(int,input().split())
ss = a*b
hf =ss//2
if a>1 and b>1:
	print(ss-hf)
else:
  print(1)
x=int(input())
n=0
for i in range(1,x):
  n+=i
  if n>=x:
    break
print(i)

### FIXED CODE ###

x=int(input())
n=0
for i in range(1,x+1):
  n+=i
  if n>=x:
    break
print(i)
from collections import Counter
a=int(input())
list1=[]
for i in range(a)
list1.append(input())
a=set(list1)
print(len(a))



### FIXED CODE ###

a=int(input())
list1=[]
for i in range(a):
  list1.append(input())
a=set(list1)
print(len(a))
S=[str(input()) for i in range(2*10^1-1)]
S.pop(0)
print(len(set(S)))

### FIXED CODE ###

S,W=map(int,input().split()) 
if S<=W:
    print('unsafe')
else:
    print('safe')
N = int(input())
A = list(map(int,input().split()))

l_max = len(A)
#print(l_max)
r = 0
count = l_max
Sums = 0
for l in range(0, l_max):
    for r in range(l+1, l_max):
       if Sums + A[r] == Sums ^ A[r]
            Sums += A[r]
            count += 1

print(count)

### FIXED CODE ###

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

count = 0
Sum = 0
r = 0

for l in range(0, N):
    #Sum = A[l]
    while r < N and Sum + A[r] == Sum ^ A[r]:
            Sum += A[r]
            r += 1
    count += r-l
    if(l==r):
        r+=1
    else:
        Sum -= A[l]
    
    
print(count)
m,d=map(int,input().split())
count=0
for i in range(1,m+1):
  for j in range(1,d+1):
    d1=int(str(d)[-1])
    d2>=2
    if d>=10 and d1>=2 and d2>=2 and d1*d2==m:
      count+=1
print(count)

### FIXED CODE ###

m,d=map(int,input().split())
count=0
for i in range(1,m+1):
    for j in range(1,d+1):
        if j>=10:
            d1=int(str(j)[-1])
            d2=int(str(j)[0])
            if d1>=2 and d2>=2 and d1*d2==i:
                count+=1
print(count)
N = int(input())
S = input()
if N % 2 != 0:
    print("No")
else:
    if S[0:N/2] == S[N/2:]:
        print("Yes")
    else:
        print("No")


### FIXED CODE ###

N = int(input())
S = input()
harf = int(N/2)
if N % 2 != 0:
    print("No")
else:
    if S[0:harf] == S[harf:]:
        print("Yes")
    else:
        print("No")
import sys, math
from sys import stdin, stdout
rem = 10 ** 9 + 7
sys.setrecursionlimit(10 ** 6+5)
#from resource import *; setrlimit(RLIMIT_STACK, (RLIM_INFINITY, RLIM_INFINITY))
take = lambda: map(int, stdin.readline().strip().split())
from bisect import bisect_left,bisect_right

x1,y1,x2,y2=take()

if x1==x2:
    diff=y1-y2
    print x2+diff,y2,x1+diff,y1
else:
    diff=x1-x2
    print x2,y2-diff,x1,y1-diff

### FIXED CODE ###

import sys, math
from sys import stdin, stdout
rem = 10 ** 9 + 7
sys.setrecursionlimit(10 ** 6+5)
#from resource import *; setrlimit(RLIMIT_STACK, (RLIM_INFINITY, RLIM_INFINITY))
take = lambda: map(int, stdin.readline().strip().split())
from bisect import bisect_left,bisect_right

k=input()
print (k/2*(k-k/2))
import math
import bisect
import heapq
from fractions import gcd #math in python 3.7
from collections import deque

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

a = [int(i)//2 for i in input().split()]



def twos(n):
    count = 0
    while n % 2 == 0:
        count += 1
        n //= 2

    return count

if min(a,key=two) != max(a,key=two) :
    print(0)
else:
    lcm = 1
    for i in a:
        lcm = lcm * i // gcd(lcm * i)
        if lcm > m:
            print(0)
            break

    else: print((m + lcm)//(2*lcm))



### FIXED CODE ###

from fractions import gcd
n, m = map(int, input().split())

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

ans = -1
b = [0] * n
for i in range(n):
    if a[i] % 2 != 0:
        ans = 0
        break

    else:
        b[i] = a[i] // 2


    if i == 0:
        num = format(a[i], 'b')[::-1].find('1')

    else:
        if format(a[i], 'b')[::-1].find('1') != num:
            ans = 0
            break
        else:
            num = format(a[i], 'b')[::-1].find('1')


if ans != 0:
    g = b[0]
    for i in range(1,n):

        g = (g*b[i]) // gcd(b[i],g)

    if g > m: ans = 0
    else:
        ans = (1 + (m-g)//(2*g))

print(ans)
a,b=int(input())
if a%3==0 or b%3==0 or (a+b)%3==0:
    print("Possible")
else:
    print("Impossible")

### FIXED CODE ###

a,b=map(int,input().split())
if a%3==0 or b%3==0 or (a+b)%3==0:
    print("Possible")
else:
    print("Impossible")
N,A,B,C,D=map(int,input().split())
S=input()

d=0
for i in range(min(A+1,N-1),min(C+1,N-1)):
  if S[i]=="#" and S[i+1]=="#":
    d=1
    break
for i in range(min(B+1,N-1),min(D+1,N-1)):
  if S[i]=="#" and S[i+1]=="#":
    d=1
    break

if C<D:
  t=1
else:
  for i in range(max(0,min(B-1,N-2)),min(C+1,N-2)):
    if S[i]=="." and S[i+1]=="." and S[i+2]==".":
      t=1
      break

if C==D:
  print("No")
else:
  if d==1:
    print("No")
  else:
    if t==0:
      print("No")
    else:
      print("Yes")

### FIXED CODE ###

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

if "##" in S[A-1:C] or "##" in S[B-1:D]:
  print("No")
  exit()


# A B C D
# A C B D
if C < D:
  print("Yes")
  exit()

# A B D C  
else:
  if "..." in S[B-2:D+1]:
    print("Yes")
  else:
    print("No")
N = int(input())
E = [tuple(map(int,input().split())) for _ in range(N-1)]
#print(E)
V = [set() for _ in range(N+1)]
for a,b in E:
  V[a].add(b)
  V[b].add(a)
#print(V)
maxc = 0
for v in V:
  maxc = max(maxc,len(v))
#print(maxc)
CE = {}
for e in E:
  CE[e] = 0
#print(CE)

def dfs(u,t,c):
  CU = set()
  if t > 0:
    CE[(min(u,t),max(u,t))] = c
    CU.add(c)
  for v in V[u]:
    if CE[(min(u,v),max(u,v))] != 0:
      CU.add(CE[(min(u,v),max(u,v))])
  CC = []
  for cc in range(1,maxc+1):
    if cc not in CU:
      CC.append(cc)
  for v in V[u]:
    if CE[(min(u,v),max(u,v))] == 0:
      dfs(v,u,CC.pop())

dfs(1,0,1)
print(maxc)
for e in E:
  print(CE[e])


### FIXED CODE ###

import sys
sys.setrecursionlimit(10 ** 9)

N = int(input())
E = [tuple(map(int,input().split())) for _ in range(N-1)]
#print(E)
V = [set() for _ in range(N+1)]
for a,b in E:
  V[a].add(b)
  V[b].add(a)
#print(V)
maxc = 0
for v in V:
  maxc = max(maxc,len(v))
#print(maxc)
CE = {}
for e in E:
  CE[e] = 0
#print(CE)

def dfs(u,t,c):
  if t > 0:
    CE[(min(u,t),max(u,t))] = c
  cc = c+1
  if cc > maxc:
    cc = 1
  for v in V[u]:
    if CE[(min(u,v),max(u,v))] == 0:
      dfs(v,u,cc)
      cc += 1
      if cc > maxc:
        cc = 1

dfs(1,0,1)
print(maxc)
for e in E:
  print(CE[e])
def gcd(x,y):
    if y == 0:
        return x
    return gcd(x%y, y)

n = int(input())
a = list(map(int, input().split()))
L = [0]
R = [0]
now1 = 0
now2 = 0
ans = 0

for i in range(n-1):
    now1 = gcd(now1,a[i])
    L.append(now1)

    now2 = gcd(now2,a[-i-1])
    R.append(now2)

for i in range(n):
    ans = max(ans, gcd(L[i], R[n-i-1]))

print(ans)

### FIXED CODE ###

import fractions
def gcd(x,y):
    if x < y:
        x, y = y, x
    if y == 0:
        return x

    return fractions.gcd(x%y, y)

n = int(input())
a = list(map(int, input().split()))
L = [0]
R = [0]
now1 = 0
now2 = 0
ans = 0

for i in range(n-1):
    now1 = gcd(now1,a[i])
    L.append(now1)

    now2 = gcd(now2,a[-i-1])
    R.append(now2)

for i in range(n):
    ans = max(ans, gcd(L[i], R[n-i-1]))

print(ans)
import sys

x = input()
if( x >= 30):
  print("Yes")
else :
  print("No")


### FIXED CODE ###

x = input()
if( int(x) >= 30):
  print("Yes")
else :
  print("No")
a,b,k = map(int,input().split())
if a>=k:
 print(a-k,b)
elif a+b<=k:
 print(0,0)
else:
 print(0,b-k+a)

### FIXED CODE ###

S,T = input().split()
print(T+S)
X,Y = int(input()),int(input())
x = X + Y/2
print(x)

### FIXED CODE ###

X,Y = map(int,input().split())
print(X+Y//2)
N, K, S = map(int, input().split())
ans = [S] * K
if S==10*9:
  for _ in range(N-K):
    ans.append(1)
else:
	for _ in range(N-K):
    	ans.append(S+1)
print(" ".join(map(str, ans)))


### FIXED CODE ###

N, K, S = map(int, input().split())
ans = [S] * K
if S==10**9:
  for _ in range(N-K):
    ans.append(1)
else:
  for _ in range(N-K):
    ans.append(S+1)
print(" ".join(map(str, ans)))
N, K = int(input())

print(N-K+1)

### FIXED CODE ###

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

print(N-K+1)
S=input()
ans="Yes"
if len(S)%2==1:
    ans="No"
else:
for i in range(len(S)):
    if i%2==0:
        if S[i]!="h":
            ans="No"
            break
    if i%2==1:
        if S[i]!="i":
            ans="No"
            break
print(ans)

### FIXED CODE ###

S=input()
ans="Yes"
if len(S)%2==1:
    ans="No"
else:
    for i in range(len(S)):
        if i%2==0:
            if S[i]!="h":
                ans="No"
                break
        if i%2==1:
            if S[i]!="i":
                ans="No"
                break
print(ans)
n,m,x = list(map(int, input().split()))
book = []
for i in range(n):
  book.append(list(map(int, input().split())))
ans = 10 ** 5 * n
for i in product([0,1], repeat=n):
  price = 0
  skill = [0] * m
  for index_, bit in enumerate(i):
    if bit:
      for j in range(m):
        skill[j] += book[index_][ j + 1]
        price += book[index_][0]
  if all(v >= x for v in skill):
    ans = min(ans, price)
        
print(ans)

### FIXED CODE ###

from itertools import product

n,m,x = list(map(int, input().split()))
book = []
for i in range(n):
    book.append(list(map(int, input().split())))

ans = 10 ** 5 * n
flag = False
for i in product([0,1], repeat=n):
    price = 0
    skill = [0] * m
    for index_, bit in enumerate(i):
        if bit:
            for j in range(m):
                skill[j] += book[index_][ j + 1]
            price += book[index_][0]
    if all(v >= x for v in skill):
        ans = min(ans, price)
        flag = True
if flag:
    print(ans)
else:
    print(-1)
L, R = map(int, input().split())
mini = 100000000000000
minib = 100000000000000

if R-L > 2019:
    print('0')
else:
    for i in range(L, R):
        if (i % 2019) < mini:
            mini = i % 2019
            ans = i

    for j in range(L, R):
        if j == ans:
            continue
        if (j % 2019) < minib:
            minib = j % 2019
            ansb = j

    calc = ((ans%2019) * (ansb%2019)) % 2019
    print(calc)

### FIXED CODE ###

L, R = map(int, input().split())
mini = 2020

if R-L >= 2019:
    print('0')
else:
    for i in range(L, R):
        for j in range(i+1, R+1):
            mini = min(mini, (i*j)%2019)
    print(mini)
N,M = map(int,input().split())

T = (1900*M)+(100*(N-M))
C = [pow(2,M),pow(2,M)-1]

if M==4: M_set[1]=3

print(T*C[0]//C[1] if ans%C[1]==0 else T*C[0])

### FIXED CODE ###

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

T = (1900*M)+(100*(N-M))
C = [pow(2,M),pow(2,M)-1]

print(T*C[0])
A, B, C, D = map(int,input().split())
for i in 100:
    C-=B
    A-=D
    if C<=0 and A<=0:
        print("Yes")
    elif C>0 and A<=0:
        print("No")
    else:
        continue

### FIXED CODE ###

A, B, C, D = map(int,input().split())
for i in range(100):
    C-=B
    A-=D
    if C<=0 and A<=0:
        print("Yes")
        break
    elif C>0 and A<=0:
        print("No")
        break
    else:
        continue
a,b=map(int,input().split())

def xor(p):
  if p%4 == 0:
    return p
  elif p%4 == 1:
    return 1
  elif p%4 == 2:
    return p+1:
  elif p%4 == 3:
    return 0

if a==0:
  print(xor(b))
elif a == b:
  print(a)
else:
  s=xor(b)
  t=xor(a-1)
  data=[]
  while s>0:
    data.append(s%2)
    s=s//2
  for i in range(len(data)):
    if (data[i] == t%2):
      data[i] = 0
    else:
      data[i] = 1
    t = t//2
  sum=0
  for i in range(len(data)):
    sum+= data[i]*(2**i)
  print(sum)

### FIXED CODE ###

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

def xor(p):
  if p%4 == 0:
    return p
  elif p%4 == 1:
    return 1
  elif p%4 == 2:
    return p+1
  elif p%4 == 3:
    return 0

if a==0:
  print(xor(b))
elif a == b:
  print(a)
else:
  s=max(xor(b),xor(a-1))
  t=min(xor(a-1),xor(b))
  data=[]
  while s>0:
    data.append(s%2)
    s=s//2
  for i in range(len(data)):
    if (data[i] == t%2):
      data[i] = 0
    else:
      data[i] = 1
    t = t//2
  sum=0
  for i in range(len(data)):
    sum+= data[i]*(2**i)
  print(sum)
n = int(input())
numList = list()
for i in range(n):
    numList.append(int(input()))
sum, ctr = 0, 1
for i in numList:
    if i % 2 != 0 and ctr % 2 != 0:
        sum = sum + 1
    ctr = ctr + 1
print(sum)

### FIXED CODE ###

x=int(input())
main=list(map(int,input().split()));count=0
for i in range(len(main)):
    if(main[i]%2!=0 and (i+1)%2!=0): count=count+1
print(count)
b=a+ a**2 + a**3
print(b)

### FIXED CODE ###

a=int(input())

print(a+a**2+a**3)
import re
N,M=map(int, input().split())

A=[]
B=[]

for n in range(N):
    A.append(input())

for m in range(M):
    B.append(input())
        
if N<M:
    print("No")
    exit()
# check
for n in range(N):
      # Bのm行目と一致
      # Bのm+1行目と一致するかチェック
      span =[m.span() for m in re.finditer(B[0], A[n])]
      #print(span)
      if span==[]:
          continue
      allgood=False
      for i in range(min(M,N)):
          #print(n)
          #print((B[i],A[n+i][span[0][0]:span[0][1]]))
          if (B[i]==A[n+i][span[0][0]:span[0][1]]):
              allgood=True
              continue
          else:
              allgood=False
              break
      if allgood==True:
          print("Yes")
          exit()

print("No")

### FIXED CODE ###

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

A=[]
B=[]

for n in range(N):
    A.append(input())

for m in range(M):
    B.append(input())
        
if N<M:
    print("No")
    exit()
# check
for n in range(N):
      # Bのm行目と一致
      # Bのm+1行目と一致するかチェック
      span =[m.span() for m in re.finditer(B[0], A[n])]
      #print(span)
      if span==[]:
          continue
      allgood=False
      for sp in span:
        for i in range(min(M,N)):
            if n+i>=N:
                allgood=False
                break
            #print(n)
            #print((B[i],A[n+i][span[0][0]:span[0][1]]))
            if (B[i]==A[n+i][sp[0]:sp[1]]):
                allgood=True
                continue
            else:
                allgood=False
                break
        if allgood==True:
            print("Yes")
            exit()

print("No")