Harryxun/stf_run huggingface dataset:
n, q = [int(i) for i in input().split()]
s = input()
for j in range(n):
	l, r = [int(k) for k in input().split()]
	tmp = s[l-1: r]
	print (tmp.count('AC'))

### FIXED CODE ###

n, q = [int(i) for i in input().split()]
st = input() + '-'
table = []
cnt = 0
for i, v in enumerate(st):
	if st[i: i+2] == 'AC':
		cnt += 1
	table.append(cnt)
table = [0] + table

for j in range(q):
	l, r = list(map(int, input().split()))
	print (table[r-1] - table[l-1])
import math
a,b,c = map(int,input(),split())
n = (c-a-b)**2
m = a*b*4
if((a+b) >= c):
	print("No")
else:
	if(n < m):
		print("Yes")
	else:
		print("No")

### FIXED CODE ###

import math
a,b,c = map(int,input().split())
l = 4*a*b
r = (c-a-b)**2
if (a+b >= c):
    print("No")
else:
    if(l < r):
        print("Yes")
    else:
        print("No")
N, M = map(int, input().split())
A = [input() for _ in range(M)]
s_A = sum(A)
if N >= s_A:
    print(N-s_A)
if N < s_A:
    print(-1)

### FIXED CODE ###

n,m=map(int,input().split())
a=list(map(int,input().split()))
for i in a:
    n-=i
    if n<0: #宿題の総日数が夏休みの日数を上回った場合
        print(-1)
        exit()
print(n)
k = int(input())
a, b = [int(x) for x in input()]
res = a//k < b//k or not a%k not b%k
print('OK' if res else 'NG')

### FIXED CODE ###

k = int(input())
a, b = [int(x) for x in input().split()]
res = (a//k < b//k) or (not a%k) or (not b%k)
print('OK' if res else 'NG')
# -*- coding: utf-8 -*-
N = int(input())
a = [input() for i in range(N)]
for i in range(N):
  if a[i][len(a[i])]==a[i+1][0]:
    continue
  else:
    break
    print("No")
print("Yes")

### FIXED CODE ###

N = int(input())
W = []
for i in range(N):
    W.append(str(input()))
ans = "No"
startwith = []
endwith = []
if len(set(W)) == len(W):
   for i in W:
       startwith.append(i[0])
       endwith.append(i[-1])
   startwith.pop(0)
   endwith.pop(-1)
   if startwith == endwith:
    ans = "Yes"

print(ans)
s = list(input())
print(s.reverse().index("Z")-s.index("A")+1)

### FIXED CODE ###

s = list(input())
print(len(s)-s[::-1].index("Z")-s.index("A"))
loop = input()
a = map(int, input().split())
cnt = 0
 
while(1):
  flg = 0
  for i in a:
    if(a%2 == 1):
      flg = 1
      break
      
  if(flg == 0):
    a = map(lambda x:x/2, a)
    cnt += 1
  else:
    break
 
print(cnt)

### FIXED CODE ###

a = input()
cnt = 0
for i in a:
  if i == '1':
    cnt+=1
    
print(cnt)
a=int(input())
print(a+a**2+a***3)

### FIXED CODE ###

a=int(input())
print(a+a**2+a**3)
import sys
setrecursionlimit(10**6)
n,k = map(int,input().split())
h = list(map(int, input().split()))

dp = [0] * n
for i in range(k):
     dp[i]=abs(h[0]-h[i])
for i in range (k,n):
     dp[i] = min([dp[i-j-1]+abs(h[i-j-1]-h[i]) for j in range(k)])

print(dp[n-1])

### FIXED CODE ###

import numpy as np
N, K = (int(i) for i in input().split())  
h = np.array([int(i) for i in input().split()])
 
dp = np.empty(N, dtype='int')
 
for i in range(N):
  if i == 0:
    dp[i] = 0
  elif i - K < 0:
    dp[i] = np.min(np.abs(h[i] - h[:i]) + dp[:i])
  else:
    dp[i] = np.min(np.abs(h[i] - h[i-K:i]) + dp[i-K:i])
 
print(dp[N-1])
import math
n = int(input())
wn = list(map(int, input().split()))
 
    
mini = math.inf
for i in range(n-1):
    new_mini = abs(sum(wn[:i]) -sum(wn[i:]))
    if new_mini < mini:
        mini = new_mini
print(mini)

### FIXED CODE ###

import math
 
n = int(input())
wn = list(map(int, input().split()))
 
mini = 10000000000
for i in range(n-1):
    new_mini = abs(sum(wn[:i+1]) -sum(wn[i+1:]))
    if new_mini < mini:
        mini = new_mini
print(mini)
n = int(input())
a = list(map(int,input().split()))
s = 1

for i in range(n):
    s *= a[i]

if s < 10**18:
    print(s)
elif s > 10**18:
    print(-1)


### FIXED CODE ###

a,b = map(int,input().split())
print(a*b)
from collections import deque
s=input()
d=deque(s)
ans=deque([])
ans.append(d[0])
c=0
for i in range(len(s)):
    if ans==[]:
        ans.append(d[i])
    elif ans[-1]==d[i]:
        ans.append(d[i])
    else:
        ans.pop()
        c+=2
print(c)

### FIXED CODE ###

s=input()
ans=[]
for i in s:
    if ans==[]:
        ans.append(i)
    elif ans[-1]!=i:
        ans.pop()
    else:
        ans.append(i)
print(len(s)-len(ans))
N, D = map(int, input().split())

grid = []
for i in range(N):
    X = list(map(int, input().strip().split()))
    grid.append(X)

# print(grid)
cnt = 0
grid2 = list(itertools.combinations(grid, 2))
for i in grid2:
    x = numpy.array(i[0])
    y = numpy.array(i[1])
  #  print(x, y)
    dis = numpy.linalg.norm(y - x)
    # print(dis)
    if (dis.is_integer()):
        #print(dis)
        cnt += 1


### FIXED CODE ###

import itertools
import numpy

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

grid = []
for i in range(N):
    X = list(map(int, input().strip().split()))
    grid.append(X)

# print(grid)
cnt = 0
grid2 = list(itertools.combinations(grid, 2))
for i in grid2:
    x = numpy.array(i[0])
    y = numpy.array(i[1])
  #  print(x, y)
    dis = numpy.linalg.norm(y - x)
    # print(dis)
    if (dis.is_integer()):
        # print(dis)
        cnt += 1

  # print("-------------")
print(cnt)
# distance = [math.sqrt(() ^ 2+() ^ 2) for i in rang(N)]
# for i in range(N):
N=int(input())
M=int(math.factorial(N))
L=10**9+7
print(M%L)

### FIXED CODE ###

import math
N=int(input())
print(math.factorial(N) % (10**9+7))
from scipy.special import comb
N,P=map(int,input().split(' '))
A=list(map(int,input().split(' ')))
odd = 0
even = 0
for i in A:
    if i%2 !=0:
        odd += 1
    else:
        even += 1

ans = 0
if P ==1:
    for i in range(1,odd+1,2):
        ans += comb(odd,i)
else:
    for i in range(0,odd+1,2):
        ans += comb(odd,i)
ans = ans*(2**even)
print(int(ans))

### FIXED CODE ###

N,P=map(int,input().split(' '))
A=list(map(int,input().split(' ')))
for i in A:
    if i%2 != 0:
        print(2**(N-1))
        exit()
if P ==0:
    print(2**N)
else:
    print(0)
H, W = map(int, input().split())
s = [input() for _ in range(H)]
case = [[1, 0], [-1, 0], [0, 1], [0, -1]]
flag = True

for i in range(H):
    for j in range(W):
        if s[i][j] == '#':
            flag = False
            for k in range(4):
                x, y = i+case[k][0], j+case[k][1]
                if x < 0 or x >= H or y < 0 or y >= H:
                    continue
                if s[x][y] == '#':
                    flag = True
                    break
            if not flag:
                break
    if not flag:
        break

print('Yes' if flag else 'No')


### FIXED CODE ###

H, W = map(int, input().split())
s = [input() for _ in range(H)]
case = [[1, 0], [-1, 0], [0, 1], [0, -1]]
flag = True

for i in range(H):
    for j in range(W):
        if s[i][j] == '#':
            flag = False
            for k in range(4):
                x, y = i+case[k][0], j+case[k][1]
                if x < 0 or x >= H or y < 0 or y >= W:
                    continue
                if s[x][y] == '#':
                    flag = True
                    break
            if not flag:
                break
    if not flag:
        break

print('Yes' if flag else 'No')
s = input()
w = input()
if w >= s:
  print('unsafe')
else:
  print('safe')  

### FIXED CODE ###

num = map(int,input().split())
a = []
for i in num:
    a.append(i)
if a[0]<a[1]:
    print('unsafe')
elif a[0]>a[1]:
    print('safe')
else:
    print('unsafe')
a,b=map(int,input().split())
if a<b:
  a,b=b,a
def gcd(m,n):
  while n!=0:
    m,n=n,m%n
  return m
def div(n):
  division=[]
  for i in range(1,int(n**0.5)+1):
    if n%i==0:
      division.append(i)
      if i!=(n//i):
        div.append(n//i)
  return division
lst=div(gcd(a,b))
cnt=1
for i in range((len(lst)+1)//2):
  if len(div(lst[i]))==2:
    cnt+=1
print(cnt)
    
    

### FIXED CODE ###

a,b=map(int,input().split())
if a<b:
  a,b=b,a
def gcd(m,n):
  while n!=0:
    m,n=n,m%n
  return m
def div(l):
  division=[]
  for i in range(1,int(l**0.5)+1):
    if l%i==0:
      division.append(i)
      if i!=(l//i):
        division.append(l//i)
  return division
lst=div(gcd(a,b))
cnt=1
for i in range(len(lst)):
  if len(div(lst[i]))==2:
    cnt+=1
print(cnt)
a,b = map(int,input().split())
if a <= 5:
  print('0')
else:
  if a <= 12:
    print(int(b/2))
  else:
    print(b)

### FIXED CODE ###

a,b,c = map(int,input().split())
for i in range(10):
  c = a*c-b
  print(c)
from collections import defaultdict
import itertools

n,m = map(int,input().split())
e = [[False]*n for _ in range(n)]

for _ in range(m):
  a,b = map(int,input().split())
  e[a-1][b-1] = True
  e[b-1][a-1] = True

ans = 0
l = [i for i in range(1,n)]
for p in itertools.permutations(l):
  p = [0] + p
  reach = 1
  for i in range(n-1):
    if not e[p[i]][p[i+1]]:
      reach = 0
      break
  ans += reach

print(ans)

### FIXED CODE ###

import itertools
n,m = map(int,input().split())
e = [[False]*n for _ in range(n)]
for _ in range(m):
  a,b = map(int,input().split())
  e[a-1][b-1] = True
  e[b-1][a-1] = True

ans = 0
l = [i for i in range(1,n)]
for p in itertools.permutations(l):
  p = [0] + list(p)
  reach = 1
  for i in range(n-1):
    if not e[p[i]][p[i+1]]:
      reach = 0
      break
  ans += reach

print(ans)
x,n=map(int,input().split())
p = list(map(int,input().split()))
p.sort()
b = []
for i in range(1,101):
    if not (i in p):
        b.append((i,abs(i-x)))

b.sort(key=lambda x:x[1])
print(b[0][0])

### FIXED CODE ###

x,n=map(int,input().split())
p = list(map(int,input().split()))
p.sort()
b = []
for i in range(0,102):
    if not (i in p):
        b.append((i,abs(i-x)))

b.sort(key=lambda x:x[1])
print(b[0][0])
class Dp:

    def __init__(self, size):
        self.size = size
        self.array = [0] * (size+1)

    def calc(self, n):
        if n == 1:
            return 1
        if self.array[n] != 0:
            return self.array[n]
        self.array[n] = self.calc(n//2) * 2 + 1
        return self.array[n]


def main():
    h = int(input())
    dp = Dp(h)
    result = dp.calc(h)
    print(result)


if __name__ == "__main__":
    main()


### FIXED CODE ###

import sys
from functools import lru_cache
sys.setrecursionlimit(20000)


class Dp:

    def __init__(self, size):
        self.size = size

    @lru_cache(maxsize=None)
    def calc(self, n):
        if n == 1:
            return 1
        return self.calc(n//2) * 2 + 1


def main():
    h = int(input())
    dp = Dp(h)
    result = dp.calc(h)
    print(result)


if __name__ == "__main__":
    main()
import math
import copy
from queue import Queue
import heapq
import numpy as np

MOD = 5000000007

#n = int(input())
#s = int(input())
#a, b, c, x, y = [int(i) for i in input().split()]
#table = [[int(i)  for i in input().split()] for j in range(m)]
#table = [list(input()) for n in range(r)] #table[h][w]
#p = [int(i) for i in input().split()]
#s = [int(i) for i in range(n)]
#p = [int(input()) for i in range(m)]
#s = input()

#list = list(s)
#a = [0 for _ in range(n+1)]
#dp = [[0 for _ in range(n+1)] for _ in range(n+1)]

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

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

ans = 0

for i in range(2**n):
    peoples = []
    flag = 1
    for j in range(n):
        if(i >> j & 1):
            peoples.append(1)
        else:
            peoples.append(0)
    
    for k in range(n):
        if peoples[k] == 1
            words = words_list[k]
            for word in words:
                if peoples[word[0]] != word[1]:
                    flag = 0
                    break
    
    if flag:
        ans = max(ans,sum(peoples))

print(ans)

### FIXED CODE ###

import math
import copy
from queue import Queue
import heapq
import numpy as np

MOD = 5000000007

#n = int(input())
#s = int(input())
#a, b, c, x, y = [int(i) for i in input().split()]
#table = [[int(i)  for i in input().split()] for j in range(m)]
#table = [list(input()) for n in range(r)] #table[h][w]
#p = [int(i) for i in input().split()]
#s = [int(i) for i in range(n)]
#p = [int(input()) for i in range(m)]
#s = input()

#list = list(s)
#a = [0 for _ in range(n+1)]
#dp = [[0 for _ in range(n+1)] for _ in range(n+1)]

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

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

ans = 0

for i in range(2**n):
    peoples = []
    flag = 1
    for j in range(n):
        if(i >> j & 1):
            peoples.append(1)
        else:
            peoples.append(0)

    for k in range(n):
        if peoples[k] == 1:
            words = word_list[k]
            for word in words:
                if peoples[word[0]] != word[1]:
                    flag = 0
                    break

    if flag:
        ans = max(ans,sum(peoples))

print(ans)
def main():
    import sys
    s = sys.stdin.readlines()

    c = []
    a = 0
    b = 0
    N, M = map(int, s[0].split())
    for e in s[1:M + 1]:
    p, S = e.split()
    if p not in c:
        if S == 'AC':
            c.append(p)
            a += 1
        else:
            b += 1

    print('{} {}'.format(a, b)) 


if __name__ == '__main__':
    main()

### FIXED CODE ###

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

ac_list = [0] * (N + 1)
wa_list = [0] * (N + 1)
a = 0
w = 0
for i in range(M):
    l = input().split()
    if ac_list[int(l[0])]!='AC':
        if l[1] == 'AC':
            ac_list[int(l[0])] = 'AC'
            a += 1
            w += wa_list[int(l[0])]
        else:
            wa_list[int(l[0])] += 1

print('{} {}'.format(a, w))
n, k = map(int, input().split(' '))
hs = list(map(int, input().split(' ')))
res = 0
for i in hs:
  if i>= k:
    res += 1
print(res)

### FIXED CODE ###

n=int(input())
cnt=0
for i in range(1,n+1):
    if i%2==1:
        cnt += 1
print(cnt/n)
n = input()
num = [int(i) for i in input().split()]
count = 0
end=False
while(True):
	div = []
	for i in num:
		if(i % 2 == 0):
			div.append(i/2)
		else:
			print(count)
			end = True
                        break
	if(end == True):
		break
	num = div
	count = count + 1

### FIXED CODE ###

n = input()
num = [int(i) for i in input().split()]
count = 0
end=False
while(True):
	div = []
	for i in num:
		if(i % 2 == 0):
			div.append(i/2)
		else:
			print(count)
			end = True
			break
	if(end == True):
		break
	num = div
	count = count + 1
import math

r = int(input())

print(r*2*math.PI)

### FIXED CODE ###

import math

r = int(input())

print(2*r*math.pi)
import math

N,X = map(int,input().split())
x = list(map(int,input().split()))
x2 = []

for i in range(len(x)):
    x2.append(abs(x[i]-X))

gcd = x2[0]
for i in range(1,len(x2)):
    gcd = math.gcd(gcd,x2[i])
print(gcd)

### FIXED CODE ###

N,X = map(int,input().split())
x = list(map(int,input().split()))

def gcd(x1,x2):
    while x2 != 0:
        x1,x2 = x2, x1%x2
    return x1

for i in range(len(x)):
    x[i] = abs(x[i]-X)

ans = x[0]
for i in range(1,len(x)):
    ans = gcd(ans,x[i])
print(ans)
import sys
from itertools import combinations, permutations, product, combinations_with_replacement, accumulate
from heapq import heapify, heappop, heappush, heappushpop
from bisect import bisect_left, bisect_right
from collections import Counter, defaultdict, deque
from math import sqrt, log, floor, ceil, factorial, cos, sin, pi  #, gcd
from fractions import gcd
from operator import mul
from functools import reduce
sys.setrecursionlimit(10**5)
input = sys.stdin.readline
INF = float('inf')
LINF = 2**63-1
NIL = -LINF
MOD = 10**9+7
MGN = 4
def MAST(exp: bool, msg = ""):
    if exp is False: 
        print("MAssertionError:", msg)
        ls = [0] * 10**10
def II(): return int(input())
def IF(): return float(input())
def IS(): return input().replace('\n', '')
def ILCI(n: int): return [II() for _ in range(n)]
def ILCF(n: int): return [IF() for _ in range(n)]
def ILI(): return list(map(int, input().split()))
def ILLI(n: int): return [[int(j) for j in input().split()] for i in range(n)]
def ILF(): return list(map(float, input().split()))
def ILLF(n: int): return [[float(j) for j in input().split()] for i in range(n)]
def LTOS(lst: list, sep: str = ' '): return sep.join(map(str, lst))
def DEC(lst: list): return list(map(lambda x: x-1, lst))
def INC(lst: list): return list(map(lambda x: x+1, lst))


def main():
    A,B,C = ILI()

    ans = "No"
    MAST(C > A + B, "C > A + B")
    # A + 2sqrt(AB) + B < C
    if C - A - B  > 0 and  4 * A * B < (C- A - B) ** 2:
        ans = "Yes"
        
    print(ans)


if __name__ == '__main__':
    main()

### FIXED CODE ###

import sys
from itertools import combinations, permutations, product, combinations_with_replacement, accumulate
from heapq import heapify, heappop, heappush, heappushpop
from bisect import bisect_left, bisect_right
from collections import Counter, defaultdict, deque
from math import sqrt, log, floor, ceil, factorial, cos, sin, pi #, gcd
from fractions import gcd
from operator import mul
from functools import reduce
sys.setrecursionlimit(10**5)
input = sys.stdin.readline
INF = float('inf')
LINF = 2**63-1
NIL = -LINF
MOD = 10**9+7
MGN = 4
def II(): return int(input())
def IF(): return float(input())
def IS(): return input().replace('\n', '')
def ILCI(n: int): return [II() for _ in range(n)]
def ILCF(n: int): return [IF() for _ in range(n)]
def ILI(): return list(map(int, input().split()))
def ILLI(n: int): return [[int(j) for j in input().split()] for i in range(n)]
def ILF(): return list(map(float, input().split()))
def ILLF(n: int): return [[float(j) for j in input().split()] for i in range(n)]
def LTOS(lst: list, sep: str = ' '): return sep.join(map(str, lst))
def DEC(lst: list): return list(map(lambda x: x-1, lst))
def INC(lst: list): return list(map(lambda x: x+1, lst))


def main():
    A,B,C = ILI()

    ans = "No"
    # A + 2sqrt(AB) + B < C
    if C - A - B  > 0 and  4 * A * B < (C- A - B) ** 2:
        ans = "Yes"

    print(ans)


if __name__ == '__main__':
    main()
N=int(input())
K=int(input())
S= list(input())
str = S[K-1]
for i in range(N):
    if(S[i]!=str):
        S[i]="*"
str2 =""
for i in range(N):
    str2=str2+S[i]
print(str2)


### FIXED CODE ###

N=int(input())
S= list(input())
K=int(input())

str = S[K-1]
for i in range(N):
    if(S[i]!=str):
        S[i]="*"
str2 =""
for i in range(N):
    str2=str2+S[i]
print(str2)
import math
A, B, C, D = map(int, input().split())
def lcm(x, y):
    return (x * y) // math.gcd(x, y)
def solve(n):
    ans = n - n//C - n//D + n//lcm(C, D)
    return ans
answer = solve(B) - solve(A-1)
print(answer)

### FIXED CODE ###

import fractions
A, B, C, D = map(int, input().split())
def lcm(x, y):
    return (x * y) // fractions.gcd(x, y)
def solve(n):
    return n - n//C - n//D + n//lcm(C, D)
print(solve(B) - solve(A-1))
n,k=map(int, Input.split())
a=list(map(int, Input.split()))
for i in range(n-k):
    if a[i]<a[i+k]:
        print("Yes")
    else:
        print("No")
        

### FIXED CODE ###

n,k=map(int, input().split())
a=list(map(int, input().split()))
for i in range(n-k):
    if a[i]<a[i+k]:
        print("Yes")
    else:
        print("No")
import sys
input = sys.stdin.readline

N=int(input())
A=[input().strip() for i in range(N)]

X=[]

for a in A:
    TWO=0
    FIVE=0

    if "." in a:
        x=a.split(".")
        L=len(x[1])
        #print(x,L)
        TWO-=L
        FIVE-=L

        x=int("".join(x))

        #print(x)

        while x%2==0:
            x//=2
            TWO+=1

        while x%5==0:
            x//=5
            FIVE+=1

        #print(TWO,FIVE)

    else:
        x=int(a)
        while x%2==0:
            x//=2
            TWO+=1

        while x%5==0:
            x//=5
            FIVE+=1

    X.append((TWO,FIVE))

LIST=[[0]*30 for i in range(30)]

for x,y in X:
    LIST[x+15][y+15]+=1

#for l in LIST:
#    print(*l)

#print()

for i in range(30):
    for j in range(28,-1,-1):
        LIST[i][j]+=LIST[i][j+1]

for j in range(30):
    for i in range(28,-1,-1):
        LIST[i][j]+=LIST[i+1][j]

#for l in LIST:
#    print(*l)

ANS=0

for x,y in X:
    x2=-x
    y2=-y

    if x>=x2 and y>=y2:
        ANS-=1

    ANS+=LIST[x2+15][y2+15]

    #print(x,y,ANS)

print(ANS//2)




### FIXED CODE ###

import sys
input = sys.stdin.readline

N=int(input())
A=[input().strip() for i in range(N)]

X=[]

for a in A:
    TWO=0
    FIVE=0

    if "." in a:
        x=a.split(".")
        L=len(x[1])
        #print(x,L)
        TWO-=L
        FIVE-=L

        x=int("".join(x))

        #print(x)

        while x%2==0:
            x//=2
            TWO+=1

        while x%5==0:
            x//=5
            FIVE+=1

        #print(TWO,FIVE)

    else:
        x=int(a)
        while x%2==0:
            x//=2
            TWO+=1

        while x%5==0:
            x//=5
            FIVE+=1

    X.append((TWO,FIVE))

LIST=[[0]*100 for i in range(100)]

for x,y in X:
    LIST[x+35][y+35]+=1

#for l in LIST:
#    print(*l)

#print()

for i in range(100):
    for j in range(98,-1,-1):
        LIST[i][j]+=LIST[i][j+1]

for j in range(100):
    for i in range(98,-1,-1):
        LIST[i][j]+=LIST[i+1][j]

#for l in LIST:
#    print(*l)

ANS=0

for x,y in X:
    x2=-x
    y2=-y

    if x>=x2 and y>=y2:
        ANS-=1

    ANS+=LIST[x2+35][y2+35]

    #print(x,y,ANS)

print(ANS//2)
N = int(input())
num = list(map(int, input().split()))
tmp = 0
state_tmp = 0
result = 1
#i番目を比べる
for i in range(N):
    if i != 0 and 1<= num[i] <= 200:
        for j in range(N):
            if num[j] <= num[i]:
                state_tmp +=1
        if state_tmp ==  N and tmp <= num[i]:
                result +=1
        tmp = num[i]
        state_tmp = 0
    else:
        tmp = num[i]
    
print(result)

### FIXED CODE ###

import itertools
num = list(map(int, input().split()))
result = 0
tmp_1 = 0
tmp  =0
tmp_2 = 0
if num[0] == num[1]:
    tmp  = num[0] +  num[0]
else:
    tmp = num[0] + num[1]
    tmp_1 = num[0] + num[0] -1
    tmp_2 = num[1] + num[1] -1
print(max(tmp,tmp_1,tmp_2))
from bisect import bisect_left, bisect_right
from collections import Counter, defaultdict, deque, OrderedDict
from copy import deepcopy
from functools import lru_cache, reduce
from math import ceil, floor, log2

import heapq
import itertools
import operator


def get_int():
    return int(input())


def get_str():
    return input().strip()


def get_int_list():
    return [int(i) for i in input().split()]


def get_char_list():
    return list(input().strip())


def main():
    n, k = get_int_list()
    xs = get_int_list()

    if k == 0:
        print(sum(xs))
        return
    best = 0
    for i in range(int(ceil(log2(k)))):
        y = 1 << i
        diff = sum((x ^ y) - x for x in xs)
        if diff > 0:
            best += y
    if best > k:
        raise Exception('Expected error')
    print(sum((x ^ best) for x in xs))


if __name__ == '__main__':
    main()


### FIXED CODE ###

from bisect import bisect_left, bisect_right
from collections import Counter, defaultdict, deque, OrderedDict
from copy import deepcopy
from functools import lru_cache, reduce
from math import ceil, floor

import heapq
import itertools
import operator


def get_int():
    return int(input())


def get_str():
    return input().strip()


def get_int_list():
    return [int(i) for i in input().split()]


def get_char_list():
    return list(input().strip())


def bit1l(i):
    assert i > 0
    return len(bin(i)) - 3


def count1(i, xs):
    return sum(bool(i & x) for x in xs)


def main():
    n, k = get_int_list()
    xs = get_int_list()

    if k == 0:
        print(sum(xs))
        return
    gains = []
    for i in range(bit1l(k) + 1):
        gains.append((i, (len(xs) - count1(1 << i, xs) * 2) * (1 << i)))
    gains.sort(key=lambda x: x[1], reverse=True)
    best = 0
    for i, gain in gains:
        if gain < 0:
            break
        if k < best + (1 << i):
            continue
        best += (1 << i)
    print(sum((x ^ best) for x in xs))


if __name__ == '__main__':
    main()
import math 
h, a = map(int, input.split())
ans = math.ceil(h/a)
print(ans)

### FIXED CODE ###

import math 
h, a = map(int, input().split())
ans = math.ceil(h/a)
print(ans)