Harryxun/stf_run huggingface dataset:
N, M = map(int, input().split())
H = list(map(int, input().split()))
A = [0 for k in range(M)]
B = [0 for k in range(M)]

for k in range(M):
    A[k], B[k] = map(int, input().split())
    A[k] -= 1
    B[k] -=1
good = [1 for k in range(N)]
C = A.append(B)
for k in A:
    if good[k] ==1:

        for j in range(M):
            if k == A[j] and H[k]<=H[B[j]]:
                good[k] = 0
            if k == A[j] and H[k]>=H[B[j]]:
                good[B[j]] = 0
            if k == B[j] and H[k]<=H[A[j]]:
                good[k] = 0
            if k == B[j] and H[k]>=H[A[j]]:
                good[A[j]] = 0
for k in B:
    if good[k] ==1:

        for j in range(M):
            if k == A[j] and H[k]<=H[B[j]]:
                good[k] = 0
            if k == A[j] and H[k]>=H[B[j]]:
                good[B[j]] = 0
            if k == B[j] and H[k]<=H[A[j]]:
                good[k] = 0
            if k == B[j] and H[k]>=H[A[j]]:
                good[A[j]] = 0        
        

print(sum(good))
        

### FIXED CODE ###

N, M = map(int, input().split())
H = list(map(int, input().split()))
A = [0 for k in range(M)]
B = [0 for k in range(M)]

for k in range(M):
    A[k], B[k] = map(int, input().split())
    A[k] -= 1
    B[k] -= 1
good = [1 for k in range(N)]

for k in range(M):
    if H[A[k]] <= H[B[k]]:
        good[A[k]] = 0
    if H[A[k]] >= H[B[k]]:
        good[B[k]] = 0   
        '''
for k in range(N):
    if good[k] ==1:
        if k in A:
            for j in range(M):
                if k == A[j] and H[k]<=H[B[j]]:
                    good[k] = 0
                if k == A[j] and H[k]>=H[B[j]]:
                    good[B[j]] = 0
        if k in B:
            for j in range(M):
                if k == B[j] and H[k]<=H[A[j]]:
                    good[k] = 0
                if k == B[j] and H[k]>=H[A[j]]:
                    good[A[j]] = 0
'''
print(sum(good))
import sys
input = sys.stdin.readline()

N, K = [int(x) for x in input().split()]
arr = [0] * (10**5+1)
for _ in range(N):
    a, b = [int(x) for x in input().split()]
    arr[a] += b

remain = K
for i in range(1, 10**5+1):
    if arr[i] != 0:
        remain -= arr[i]
    if remain <= 0:
        print(i)
        exit()

### FIXED CODE ###

N, K = [int(x) for x in input().split()]
arr = [0] * (10**5+1)
for _ in range(N):
    a, b = [int(x) for x in input().split()]
    arr[a] += b

th = 0
for i in range(1, 10**5+1):
    if arr[i] != 0:
        th += arr[i]
    if th >= K:
        print(i)
        exit()
n=int(input())
a=list(map(int,input().split()))
a.sort() 
alice_sum=0
bob_sum=0
if len(a)%2==0:
  for i in range(,n,2):
    bob_sum+=a[i]
  for l in range(1,n,2):
    alice_sum+=a[i]
else:
  for i in range(,n,2):
    alice_sum+=a[i]
  for k in range(1,n,2):
    bob_sum+=a[i]
    
print(alice_sum-bob_sum)

### FIXED CODE ###

n=int(input())
a=list(map(int,input().split()))
a.sort() 
alice_sum=0
bob_sum=0
if len(a)%2==0:
  for i in range(0,n,2):
    bob_sum+=a[i]
  for l in range(1,n,2):
    alice_sum+=a[l]
else:
  for i in range(0,n,2):
    alice_sum+=a[i]
  for k in range(1,n,2):
    bob_sum+=a[k]
    
print(alice_sum-bob_sum)
x,y = input().split()
li = ['A','B','C','D',,'E','F']
x = li.index(x)
y = li.index(y)
if x < y:
    print('<')
elif x > y:
    print('>')
else:
    print('=')

### FIXED CODE ###

x,y = input().split()
li = ['A','B','C','D','E','F']
x = li.index(x)
y = li.index(y)
if x < y:
    print('<')
elif x > y:
    print('>')
else:
    print('=')
N, Q = map(int,input().split())
S = input()

atgc_list= []

flag = 0
memo =0

for i in range (len(S)):
    if S[i]=='A':
        flag = 1
    elif flag == 1 and S[i] == 'C':
        memo+=1
    elif S[i] in ['T','G','C']:
        flag = 0
    atgc_list.append(memo)
        
atgc_list_np = np.array(atgc_list)

for j in range (Q):
    l, r = map(int,input().split())
    low = atgc_list[l-1]
    high = atgc_list[r-1]
    print(high - low)


### FIXED CODE ###

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

atgc_list= []

flag = 0
memo =0

for i in range (len(S)):
    if S[i]=='A':
        flag = 1
    elif flag == 1 and S[i] == 'C':
        memo+=1
        flag = 0
    elif S[i] in ['T','G','C']:
        flag = 0
    atgc_list.append(memo)
        

for j in range (Q):
    l, r = map(int,input().split())
    low = atgc_list[l-1]
    high = atgc_list[r-1]
    print(high - low)
import sys
S = input()
a = []
count = 0

for i in range(0, len(S)):
    a.append(S[i])

for k in range(0, len(S)):
    if k % 2 == 0:
        if S[k] == "h":
            if S[k+1] == "i":
                count += 1
            else:
                print("No")
                sys.exit()
        else:
            print("No")
            sys.exit()
    else:
        pass

if len(S) % 2 == 0:
    if count % 2 == 0:
        print("Yes")
    else:
        pass
else:
    if count % 2 == 1:
        print("Yes")
    else:
        pass


### FIXED CODE ###

import sys
S = input()
a = []
count = 0

for i in range(0, len(S)):
    a.append(S[i])

if len(S) % 2 == 0:
    for k in range(0, len(S)):
        if k % 2 == 0:
            if S[k] == "h":
                if S[k+1] == "i":
                    count += 1
                else:
                    print("No")
                    sys.exit()
            else:
                print("No")
                sys.exit()
        else:
            pass
else:
    print("No")

if count > 0:
    print("Yes")
from itertools import product
import numpy as np

x = int(input())

if 400 <= x < 600:
    print('8')
elif 600 <= x < 800:
    print('7')
elif 800 <= x < 1000:
    print('6')
elif 1000 <= x < 1200:
    print('5')
elif 1200 <= x < 1400:
    print('4')
elif 1400 <= x < 1600:
    print('3')
elif 1600 <= x < 1800:
    print('2')
elif 1800 <= x < 2000:
    print('1')

### FIXED CODE ###

x = int(input())

if 400 <= x < 600:
    print('8')
elif 600 <= x < 800:
    print('7')
elif 800 <= x < 1000:
    print('6')
elif 1000 <= x < 1200:
    print('5')
elif 1200 <= x < 1400:
    print('4')
elif 1400 <= x < 1600:
    print('3')
elif 1600 <= x < 1800:
    print('2')
elif 1800 <= x < 2000:
    print('1')
import math,string,itertools,fractions,heapq,collections,re,array,bisect,sys,random,time,copy,functools
from collections import deque

sys.setrecursionlimit(10**7)
inf = 10**20
mod = 10**9 + 7

DR = [1, -1, 0, 0]
DC = [0, 0, 1, -1]

def LI(): return [int(x) for x in sys.stdin.readline().split()]
def LI_(): return [int(x)-1 for x in sys.stdin.readline().split()]
def LF(): return [float(x) for x in sys.stdin.readline().split()]
def LS(): return sys.stdin.readline().split()
def I(): return int(sys.stdin.readline())
def F(): return float(sys.stdin.readline())
def S(): return input()

def lcm(a, b):
    gcd = fractions.gcd
    n_gcd = gcd(a, b)
    return a * b // n_gcd

def main():
    N = I()
    T = []
    for _ in range(N):
        T.append(I())
    n_lcm = lcm(T[0], T[1])
    for i in range(2, N):
        n_lcm = lcm(n_lcm, T[i])
    print(n_lcm)
main()



### FIXED CODE ###

import math,string,itertools,fractions,heapq,collections,re,array,bisect,sys,random,time,copy,functools
from collections import deque

sys.setrecursionlimit(10**7)
inf = 10**20
mod = 10**9 + 7

DR = [1, -1, 0, 0]
DC = [0, 0, 1, -1]

def LI(): return [int(x) for x in sys.stdin.readline().split()]
def LI_(): return [int(x)-1 for x in sys.stdin.readline().split()]
def LF(): return [float(x) for x in sys.stdin.readline().split()]
def LS(): return sys.stdin.readline().split()
def I(): return int(sys.stdin.readline())
def F(): return float(sys.stdin.readline())
def S(): return input()

def lcm(a, b):
    gcd = fractions.gcd
    n_gcd = gcd(a, b)
    return a * b // n_gcd

def main():
    N = I()
    T = []
    for _ in range(N):
        T.append(I())
    n_lcm = lcm(T[0], T[0])
    for i in range(1, N):
        n_lcm = lcm(n_lcm, T[i])
    print(n_lcm)
main()
try:
    s = []
    while True:
        t = raw_input()
        s.append(t)
except EOFError:
    for i in range(len(s)):
        a = int(s[i].split(' ')[0])
        b = int(s[i].split(' ')[1])
        print(len(str(a + b)))

### FIXED CODE ###

try:
    s = []
    while True:
        t = input()
        s.append(t)
except EOFError:
    for i in range(len(s)):
        a = int(s[i].split(' ')[0])
        b = int(s[i].split(' ')[1])
        print(len(str(a + b)))
import sys
N, T = map(int, sys.stdin.readline().strip().split())  # N個の帰宅経路, T時間以内に

cost = 1001
for line in sys.stdin.readlines():
    c, t = line.strip().split()
    if T >= t:
        cost = min(cost, c)

if cost == 1001:
    print('TLE')
else:
    print(cost)


### FIXED CODE ###

import sys
N, T = map(int, sys.stdin.readline().strip().split())  # N個の帰宅経路, T時間以内に

cost = 1001
for line in sys.stdin.readlines():
    c, t = map(int, line.strip().split())
    if T >= t:
        cost = min(cost, c)

if cost == 1001:
    print('TLE')
else:
    print(cost)
N, M = map(int, input().split())
d=[[] for i in range(N)]
for i in range(M):
    b, c = map(int, input().split())
    for j in range(1, N+1):
        if b == j:
            d[j-1].append(c-1)
        if c == j:
            d[j-1].append(b-1)
while True:
    count = 0
    for i in range(N):
        if len(d[i]) == 1:
            d[d[i]-1].remove(i)
            d[i]=[]
            count += 1
        if count == 0:
            break
        a+=count
print(a)

### FIXED CODE ###

n,m=map(int,input().split())
l=[[] for _ in range(n)]
for _ in range(m):
    a,b=map(int,input().split())
    l[a-1].append(b-1)
    l[b-1].append(a-1)
a=0
while 1:
    x=0
    for i in range(n):
        if len(l[i])==1:
            l[l[i][0]].remove(i)
            l[i]=[]
            x+=1
    if x==0:break
    a+=x
print(a)
import sys
sys.setrecursionlimit(20000000)
input = sys.stdin.readline
mod = 998244353
n = int(input())
a = [int(input()) for i in range(n)]
d = max(a)
dp = [[[0]*(d*n+1) for i in range(d*n+1)] for j in range(n+1)]
dp[0][0][0] = 1
for i in range(n):
    for j in range(d*n+1-d):
        for k in range(d*n+1-d):
            dp[i+1][j+a[i]][k] += dp[i][j][k]
            dp[i+1][j][k+a[i]] += dp[i][j][k]
            dp[i+1][j][k] += dp[i][j][k]
            dp[i+1][j+a[i]][k] %= mod
            dp[i+1][j][k+a[i]] %= mod
            dp[i+1][j][k] %= mod
go = sum(a)
ans = 0
for j in range(1,d*n+1):
    for k in range(1,d*n+1):
        if dp[n][j][k]:
            side1 = j
            side2 = k
            side3 = go-j-k
            if side3 == 0:
                continue
            if(side1+side2>side3)and(side2+side3>side1)and(side3+side1>side2):
                ans += dp[n][j][k]
                ans %= mod
print(ans)

### FIXED CODE ###

import sys
sys.setrecursionlimit(20000000)
input = sys.stdin.readline
mod = 998244353
n = int(input())
a = [int(input()) for i in range(n)]
d = max(a)
go = sum(a)
dp = [[0]*(go+d+1) for j in range(n+1)]
dp[0][0] = 1
dp2 = [[0]*(go+d+1) for j in range(n+1)]
dp2[0][0] = 1
for i in range(n):
    for j in range(go):
            dp[i+1][j+a[i]] += dp[i][j]
            dp[i+1][j] += dp[i][j]*2
            dp[i+1][j+a[i]] %= mod
            dp[i+1][j] %= mod

            dp2[i+1][j+a[i]] += dp2[i][j]
            dp2[i+1][j] += dp2[i][j]
            dp2[i+1][j+a[i]] %= mod
            dp2[i+1][j] %= mod

zen = 3**n
zen %= mod
if go %2 == 1:
    print((zen - sum(dp[n][go//2+1:])*3)%mod)
else:
    print((zen - sum(dp[n][go//2:])*3 + dp2[n][go//2]*3)%mod)
s = input()

if s = "ARC":
    print("ABC")
elif s = "ABC"
    print("ARC")


### FIXED CODE ###

s = input()

if s == "ARC":
    print("ABC")
elif s == "ABC":
    print("ARC")
x, y, z = map(int, input().split())
x = a
y = b
z = c

print(int(c, a, b)

### FIXED CODE ###

x, y, z = map(int, input().split())
 
x, y, z = y, z, x
print(y, z, x)
N,T = map(int,input().split)
t = input().split()
amount =0

if t[0] <= T:
    amount+=t[0]
else:
    amount+=T
    
for index in range(N-1):
    t_sub = t[index+1]-t[index]
    if t_sub <= T:
        amount+=t_sub
    else:
        amount+=T

        
amount +=T

print(amount)

### FIXED CODE ###

if __name__ == '__main__':
    N, T = map(int, input().split())
    ts = list(map(int, input().split()))
    
    
amount =0


    
for index in range(N-1):
    t_sub = ts[index+1]-ts[index]
    amount+=min(t_sub,T)

        
amount +=T

print(amount)
# -*- coding: utf-8

while True:
   a = map(int,raw_input().split())
   print('#'*a[1])
   for i in range(a[0]-2):
      b = a[1]-2
      print('#''*'*b'#')
   print('#'*a[1])
   if a == [0,0]:
      break


### FIXED CODE ###

# -*- coding: utf-8

while True:
   a = map(int,raw_input().split())
   if a == [0,0]:
      break
   print('#'*a[1])
   for i in range(a[0]-2):
      b ='.'*(a[1]-2)
      print('#'+b+'#')
   print('#'*a[1])
   print('')
S = list(map(int, input().rstrip()))
for i in range(4):
  if S[i]==S[i+1]:
    print("Bad")
    exit()
print("Good")

### FIXED CODE ###

S = list(map(int, input().rstrip()))
for i in range(3):
  if S[i]==S[i+1]:
    print("Bad")
    exit()
print("Good")
n=int(input())
print(800*n-200*(n//15)

### FIXED CODE ###

n=int(input())
print(800*n-200*(n//15))
histo = ["" for i in range(6)]
n = int(raw_input())
for i in range(n):
    h = float(raw_input())
    if h < 165.0:
        histo[0] += "*"
    elif h < 170.0:
        histo[1] += "*"
    elif h < 175.0:
        histo[2] += "*"
    elif h < 180.0:
        histo[3] += "*"
    elif h < 185.0:
        histo[4] += "*"
    else:
        histo[5] += "*"

for i in range(6):
    print "%d:%a"%(i,a[i])

### FIXED CODE ###

f = ["" for i in range(6)]
n = int(raw_input())
for i in range(n):
    h = float(raw_input())
    if   h < 165.0: f[0] += "*"
    elif h < 170.0: f[1] += "*"
    elif h < 175.0: f[2] += "*"
    elif h < 180.0: f[3] += "*"
    elif h < 185.0: f[4] += "*"
    else          : f[5] += "*"

for i in range(6):
    print "%d:%-s"%(i+1,f[i])
S,T=map(int,input().split())
	print(S+T)

### FIXED CODE ###

s,t=input().split()
print(t+s)
n = input()
m = input()

if n == m:
  print('YES')
else:
  print('NO')
    

### FIXED CODE ###

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

if ls[0] == ls[1]:
  print('Yes')
else :
  print('No')
c = 0
N, D = map(float(), input().split())
for i in range(int(N)):
  a,b = map(float(), input().split())
  if a**2 + b**2 <= D:
    c+=1
print(c)

### FIXED CODE ###

c = 0
N, D = list(map(float, input().split()))
for i in range(int(N)):
    a, b = map(float, input().split())
    if a ** 2 + b ** 2 <= D**2:
        c += 1
print(c)
N, M = map(int, input().split(" "))
AL = list(map(int, [input() for _ in range(M)]))

# DP
dp = [1] * (N )
for A in AL:
    dp[A] = 0

for i in range(2, N):
    if dp[i] == 1:
        dp[i] = (dp[i-1] + dp[i-2]) % (10**9 + 7)
print(dp[N])


### FIXED CODE ###

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

step = [0 for _ in range(N + 2)]
step[1] = 1

for _ in range(M):
  i = int(input()) + 1
  step[i] = -1

for i in range(2, N + 2):
  if step[i] == -1:
    step[i] = 0
  else:
    step[i] = step[i - 2] + step[i - 1]

print (step[-1] % 1000000007)
import decimal
import math 
X = int(input())
yen = desimal(100)
n = 1
while True:
    yen = math.floor(decimal(yen*1.01*n))
    if X <= yen:
        print(n)
        break
    n = n + 1

### FIXED CODE ###

import math 
X = int(input())
yen = 100
n = 0
while yen < X:
    n = n + 1
    yen = math.floor(yen*1.01)
    if X <= yen:
        print(n)
h,w = map(int, input().split())
s = []
for i in range(h):
  s.add(input())

l = [[0]*w]*h
for i in range(h):
  for j in range(w):
    if j == 0:
      if s[i][j] == '#':
        l[i][j] = 0
      else:
        l[i][j] = 1
    else:
      if s[i][j] == '#':
        l[i][j] = 0
      else:
        l[i][j] = l[i][j-1] + 1

r = [[0]*w]*h
for i in range(h):
  for j in range(w-1, 0, -1):
    if j == w-1:
      if s[i][j] == '#':
        r[i][j] = 0
      else:
        r[i][j] = 1
    else:
      if s[i][j] == '#':
        r[i][j] = 0
      else:
        r[i][j] = r[i][j+1] + 1

u = [[0]*w]*h
for j in range(w):
  for i in range(h):
    if i == 0:
      if s[i][j] == '#':
        u[i][j] = 0
      else:
        u[i][j] = 1
    else:
      if s[i][j] == '#':
        u[i][j] = 0
      else:
        u[i][j] = u[i-1][j] + 1

d = [[0]*w]*h
for j in range(w):
  for i in range(h-1, 0, -1):
    if i == h-1:
      if s[i][j] == '#':
        d[i][j] = 0
      else:
        d[i][j] = 1
    else:
      if s[i][j] == '#':
        d[i][j] = 0
      else:
        d[i][j] = d[i+1][j] + 1

ans = 0
for i in range(h):
  for j in range(w):
    ans = max(ans, l[i][j] + r[i][j] + u[i][j] + d[i][j] - 3)

### FIXED CODE ###

h,w = map(int, input().split())
s = []
for i in range(h):
  s.append(input())

l = [[0 for i in range(w)] for j in range(h)]
for i in range(h):
  for j in range(w):
    if j == 0:
      if s[i][j] == '#':
        l[i][j] = 0
      else:
        l[i][j] = 1
    else:
      if s[i][j] == '#':
        l[i][j] = 0
      else:
        l[i][j] = l[i][j-1] + 1

r = [[0 for i in range(w)] for j in range(h)]
for i in range(h):
  for j in range(w-1, -1, -1):
    if j == w-1:
      if s[i][j] == '#':
        r[i][j] = 0
      else:
        r[i][j] = 1
    else:
      if s[i][j] == '#':
        r[i][j] = 0
      else:
        r[i][j] = r[i][j+1] + 1

u = [[0 for i in range(w)] for j in range(h)]
for j in range(w):
  for i in range(h):
    if i == 0:
      if s[i][j] == '#':
        u[i][j] = 0
      else:
        u[i][j] = 1
    else:
      if s[i][j] == '#':
        u[i][j] = 0
      else:
        u[i][j] = u[i-1][j] + 1

d = [[0 for i in range(w)] for j in range(h)]
for j in range(w):
  for i in range(h-1, -1, -1):
    if i == h-1:
      if s[i][j] == '#':
        d[i][j] = 0
      else:
        d[i][j] = 1
    else:
      if s[i][j] == '#':
        d[i][j] = 0
      else:
        d[i][j] = d[i+1][j] + 1

ans = 0
for i in range(h):
  for j in range(w):
    a = l[i][j] + r[i][j] + u[i][j] + d[i][j] - 3
    ans = max(ans, a)

print(ans)
D,T,S=input()
if(D==(S*T)):
  print("Yes")
else:
  print("No")

### FIXED CODE ###

D,T,S=input().split()
if(float(T)>=(float(D)/float(S))):
  print("Yes")
else:
  print("No")
while True:
    x = input('x=:')
    if x <= 100 and x >= 1:
        print(x ** 3)
    break



### FIXED CODE ###

x = int(input())
#print(x)
print(x ** 3)
N=int(input())
A=list(map(int,input().split()))
list.sort(A)

l=[]
n=A.pop()
n2=A.pop()
sum=n
comfort={n2:[[n,n2],[n2,n]]}

while A:
  max=sorted(comfort.keys())[-1]
  n=comfort[max].pop()
  sum+=max
  n2=A.pop()
  if comfort.get(min(n[0],n2))==None:comfort[min(n[0],n2)]=[]
  if comfort.get(min(n[1],n2))==None:comfort[min(n[1],n2)]=[]
  comfort[min(n[0],n2)].append([n[0],n2])
  comfort[min(n[1],n2)].append([n[1],n2])
print(sum)

### FIXED CODE ###

input()
A=list(map(int,input().split()))
A.sort(reverse=True)
B=[]
ans=0
for i in A:
  if len(B)>=1:
    ans+=B[len(B)//2]
  B.append(i)
print(ans)
from math import factorial
def comb(n,r=2):
    if n == 1:
        return 0
    return int(factorial(n) / factorial(r) / factorial(n - r))

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

count = {}
ans = 0

for i in range(n):
    count.setdefault(a[i], 0)
    count[a[i]] += 1

for v in count.values():
    ans += comb(v)


for i in range(n):
    v = count[a[i]]
    print(ans - comb(v) + comb(v-1))

### FIXED CODE ###

from math import factorial
def comb(n):
    if n == 1 or n == 0:
        return 0
    return int(n * (n-1) / 2 )

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

count = {}
ans = 0

for i in range(n):
    count.setdefault(a[i], 0)
    count[a[i]] += 1

for v in count.values():
    ans += comb(v)


for i in range(n):
    v = count[a[i]]
    print(ans - comb(v) + comb(v-1))
import math
#数値ひとつ
I = int(input())
#数値欲しいとき
#H, W = map(int, input().split())
#文字欲しいとき
#N = input()
#それをListにしたいとき
#listA = list(N)
a = 0
a = 2×I×3.14
print(a)

### FIXED CODE ###

import math
#数値ひとつ
I = int(input())
#数値欲しいとき
#H, W = map(int, input().split())
#文字欲しいとき
#N = input()
#それをListにしたいとき
#listA = list(N)
a = 0
a = 2*I*3.14
print(a)
N,K,X,Y = map(int,input().split())
if N < K:
    print(X * N)
else:
    print(K * X + (N - K) * Y)

### FIXED CODE ###

N = int(input())
K = int(input()) 
X = int(input())
Y = int(input())
if N < K:
    print(X * N)
else:
    print(K * X + (N - K) * Y)
N = int(input())
d = sorted(list(map(int, input().split())))
print(d[N / 2] - d[N / 2 - 1])

### FIXED CODE ###

N = int(input())
d = sorted(list(map(int, input().split())))
print(d[int(N / 2)] - d[int(N / 2 - 1)])
import sys
input = sys.stdin.readline
 
import math
 
N,M = map(int,input().split())
S = input()
 
if "1"*M in S:
  print(-1)
  exit()  

S = list(map(int,list(S)))

### FIXED CODE ###

import sys
input = sys.stdin.readline

import math
import bisect

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

if "1"*M in S:
  print(-1)
  exit()  

S = [int(S[i]) for i in range(N+1)]

L = [(1<<i) -1 for i in range(1,M+1)]

max_n = [0]
mask = (1<<M) -1
b = 0
for i in range(N):
  b = ((b<<1) + (1- S[i])) & mask
  max_n.append(bisect.bisect_left(L,b)+1)

now = N
deme = []
while now != 0:
  x = max_n[now]
  now -= x
  deme.append(x)
print(*deme[::-1])
N = int(input())
A = list(map(int, input().split()))
A = sorted(list(set(A)), reverse=True)

if len(A) == 1:
    print(0)
    exit()

ans = 0
for i in range(N-1):
    flag = True
    for j in range(i+1, N):
        if A[i] % A[j] == 0:
            flag = False
            break
    if flag:
        ans += 1

print(ans+1)

### FIXED CODE ###

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

M = 10**6 + 1
cnt = [0]*M

for a in A:
    if cnt[a] != 0:
        cnt[a] += 1
        continue
    for i in range(M)[a::a]:
        cnt[i] += 1

ans = 0
for a in A:
    if cnt[a] == 1:
        ans += 1

print(ans)
import math
from functools import reduce
def lcm_base(x, y):
    return (x * y) // math.gcd(x, y)
def lcm_list(numbers):
    return reduce(lcm_base, numbers, 1)
nm=list(map(int, input().split()))
a=list(map(int, input().split()))
n=nm[0]
m=nm[1]
b=0
while a[0]%2==0:
    for i in range(len(a)):
        if a[i]%2==0:
            a[i]=a[i]//2
        else:
            b=1
            break
if b==1:
    print(0)
else:
    amc=lcm_list(a)
    print((m+amc)//(2*amc))




### FIXED CODE ###

import fractions
from functools import reduce
def lcm_base(x, y):
    return (x * y) // fractions.gcd(x, y)
def lcm_list(numbers):
    return reduce(lcm_base, numbers, 1)
nm=list(map(int, input().split()))
a=list(map(int, input().split()))
n=nm[0]
m=nm[1]
b=0
c=a[0]
dnum=0
while c%2==0:
    dnum+=1
    c=c//2
for i in range(len(a)):
    c=a[i]
    dnum1=0
    while c%2==0:
        dnum1+=1
        c=c//2
    #print(dnum)
    if dnum1!=dnum:
        b=1
        break

#print(a)
if b==1:
    print(0)
else:
    for i in range(len(a)):
        a[i]=a[i]//2
    #print(a)
    amc=lcm_list(a)
    #print(amc)
    # version3.5にてgcdがfractionsからmathに移動した
    print(int((m+amc)/(2*amc)))
i = 1
while (1):
  n = int(raw_input())
  if n == 0:
    break
  print "Case %d: %d"%(i,n):
  i = i + 1

### FIXED CODE ###

i = 1
while(1):
  x = int(raw_input())
  if x == 0:
    break
  print "Case %d: %d" %(i,x)
  i = i + 1