Harryxun/stf_run huggingface dataset:
from math import log2

N, K = map(int, input().split())
a = list(map(int, input().split()))
sa = sum(a)

if sa == 0:
    print(K * N)
    exit()

b = [0 for _ in range(int(log2(sa)) + 1)]
# b[2進数の位] = そのbitが立っているAiの数

ls = int(log2(sa))
# print(ls)

for aa in a:
    for i in range(ls + 1):
        # print(aa, aa >> i, i)
        if (aa >> i) & 1 == 1:
            # print('if')
            b[i] += 1
# print(b)

x = []
if K > 0:
    for i in range(int(log2(K)) + 1):
        t = N - 2 * b[i]
        if t > 0:
            x.append((1 << i, t * (1 << i)))
            # (立てるフラグ値、答えの増加量)

    x = sorted(x, key=lambda xx: xx[1], reverse=True)
# print(x)

sx = 0
st = 0
for xx in x:
    if sx + xx[0] <= K:
        sx += xx[0]
        st += xx[1]

ans = sa + st
print(ans)

### FIXED CODE ###

from math import log2

N, K = map(int, input().split())
a = list(map(int, input().split()))
sa = sum(a)

if sa == 0:
    print(K * N)
    exit()

b = [0 for _ in range(int(log2(max(sa, K))) + 1)]
# b[2進数の位] = そのbitが立っているAiの数

ls = int(log2(sa))
# print(ls)

for aa in a:
    for i in range(ls + 1):
        # print(aa, aa >> i, i)
        if (aa >> i) & 1 == 1:
            # print('if')
            b[i] += 1
# print(b)

x = []
if K > 0:
    for i in range(int(log2(K)) + 1):
        t = N - 2 * b[i]
        if t > 0:
            x.append((1 << i, t * (1 << i)))
            # (立てるフラグ値、答えの増加量)

    x = sorted(x, key=lambda xx: xx[1], reverse=True)
# print(x)

sx = 0
st = 0
for xx in x:
    if sx + xx[0] <= K:
        sx += xx[0]
        st += xx[1]

ans = sa + st
print(ans)
a,b = map(int,input().split())
if a=='H':
  print(b)
else:
  if b=='D':
    print('H')
  else:
    print('D')

### FIXED CODE ###

a,b = input().split()
if a=='H':
  print(b)
else:
  if b=='D':
    print('H')
  else:
    print('D')
import math

n = int(input())
fac_n = math.factorial(n)

def make_divisors(n):
    divisors = []
    for i in range(1, int(n**0.5)+1):
        if n % i == 0:
            divisors.append(i)
            if i != n // i:
                divisors.append(n//i)

    divisors.sort()
    return divisors
print(len(make_divisors(fac_n)))

### FIXED CODE ###

def solve():
    n = int(input())
    keta = [0] * (n+1)
    for i in range(2, n+1):
        for j in range(2, int(pow(i, 0.5))+1):
            if i % j: continue
            ex = 0
            while i % j == 0:
                i = i // j
                ex += 1
            keta[j] += ex
        if i != 1:
            keta[i] += 1

    mod = 1000000007
    ans = 1
    for ex in keta:
        ans = ans * (ex + 1)
        ans %= mod
    print(ans)

if __name__ == '__main__':
    solve()
def main():
    import sys
    input = sys.stdin.readline
    import numpy as np
    from scipy.sparse import csgraph
    from scipy.sparse import csr_matrix

    N, M = map(int, input().split())
    H = np.array(list(map(int, input().split())))
    AB = np.array([list(map(int, input().split())) for i in range(M)])-1

    ab0 = list(AB[:, 0])
    ab1 = list(AB[:, 1])
    csr = csr_matrix(
        ([1]*(2*M), (ab0+ab1, ab1+ab0)), shape=(N, N)).toarray()

    count = 0
    for i, indices in enumerate(csr):
        if (indices == 0).all():
            count += 1
            continue
        if np.max(H[indices != 0]) < H[i]:
            count += 1

    print(count)


if __name__ == "__main__":
    main()


### FIXED CODE ###

def main():
    import sys
    input = sys.stdin.readline
    import numpy as np
    from scipy.sparse import csr_matrix

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

    AB = [[] for i in range(N)]
    for _ in range(M):
        a, b = map(int, input().split())
        a -= 1
        b -= 1
        AB[a].append(b)
        AB[b].append(a)
    count = 0
    for i, ab in enumerate(AB):
        ind = list(set(ab))
        if ind == []:
            count += 1
            continue
        if np.max(H[ind]) < H[i]:
            count += 1
    print(count)

    # AB = np.array([list(map(int, input().split())) for i in range(M)])-1

    # ab0 = list(AB[:, 0])
    # ab1 = list(AB[:, 1])
    # csr = csr_matrix(
    #     ([1]*(2*M), (ab0+ab1, ab1+ab0)), shape=(N, N)).toarray()

    # count = 0
    # for i, indices in enumerate(csr):
    #     if (indices == 0).all():
    #         count += 1
    #         continue
    #     if np.max(H[indices != 0]) < H[i]:
    #         count += 1

    # print(count)


if __name__ == "__main__":
    main()
if D==23:
    print('Christmas Eve Eve')

if D==24:
    print('Christmas Eve')

if D==23:
    print('Christmas ')


### FIXED CODE ###

D = int(input())

if D==22:
    print ("Christmas Eve Eve Eve")

if D==23:
    print ("Christmas Eve Eve")

if D==24:
    print ("Christmas Eve")

if D==25:
    print ("Christmas ")
from heapq import heappop, heappush

t = int(input())
for i in range(t):
  n = int(input())
  klr = [list(map(int, input().split())) for i in range(n)]
  plus = []
  p_que = []
  minus = []
  m_que = []
  ans = 0
  for key, (k,l,r) in enumerate(klr):
    diff = l-r
    if diff >= 0:
      plus.append([k, diff, key])
      heappush(p_que,(diff, k, key))
      ans += r
    else:
      minus.append([k, -diff, key])
      heappush(m_que,(-diff, k, key))
      ans += l
  plus.sort(reverse=True)
  used = [0] * n
  now = len(plus)
  for k,diff,key in plus:
    while now > k:
      data = heappop(p_que)
      idx = data[2]
      if used[idx]:
        continue
      used[idx] = 1
      now -= 1
    if used[key]:
      continue
    used[key] = 1
    ans += diff
    now -= 1
  now = len(plus) + 1      
  minus.sort()
  for k,diff,key in minus:
    while now <= k:
      data = heappop(m_que)
      idx = data[2]
      if used[idx]:
        continue
      used[idx] = 1
      now += 1
    if used[key]:
      continue
    used[key] = 1
    ans += diff
    now += 1
  print(ans)  


### FIXED CODE ###

l,r,d = map(int, input().split())
ans = r//d - (l-1)//d
print(ans)
s=set(input().split())
a=set(abcdefghijklmnopqrstuvwxyz)

if s==a:
    print('None')
else:
    print(s-a)

### FIXED CODE ###

s=set(list(input()))
a=set(list('abcdefghijklmnopqrstuvwxyz'))

if s==a:
    print('None')
else:
    b=sorted(list(a-s))
    print(str(b[0]))
K=int(input())

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

def m(a,b,c):
	for i in (a, b+1):
  		if i%k==0:
          print("OK")
          return
    print("NG")
    return
m(a,b,k)

### FIXED CODE ###

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

def m(a,b,c):
    for i in range(a, b+1):
        if i%c==0:
            print("OK")
            return
    print("NG")
    return

m(a,b,k)
x, y, z = [int(i) for i in input().split()]
x, y = y, x
x, z = z, x
print(f'{x} {y} {z}')

### FIXED CODE ###

x, y, z = [int(i) for i in input().split()]
x, y = y, x
x, z = z, x
print(x, y, z)
N = int(input())
c = str(input())

firstRidx = None
Rrenzoku = 0
Rcount = 0
flag = True
for i in range(len(c)):
    if c[i] == 'R':
        Rcount += 1
        if firstRidx is None:
            firstRidx = i
        if i != 0 and i != firstRidx and c[i-1] == 'W':
            flag = False
        if flag:
            Rrenzoku += 1

if firstRidx <= Rcount - Rrenzoku:
    print(Rcount - Rrenzoku)
elif firstRidx > Rcount - Rrenzoku:
    print(firstRidx)

### FIXED CODE ###

N = int(input())
c = str(input())

Rcount = 0
Wcount = 0
for i in range(len(c)):
    if c[i] == 'R':
        Rcount += 1
for i in range(Rcount):
    if c[i] == 'W':
        Wcount += 1

print(Wcount)
#!/usr/bin/python3
# -*- coding: utf-8 -*-
a, b = map(int, input().strip().split())
if a % 2 == 0 || b % 2 == 0:
    print("Even")
else:
    print("Odd")

### FIXED CODE ###

a, b = map(int, input().strip().split())
if a % 2 == 0 or b % 2 == 0:
    print("Even")
else:
    print("Odd")
l=[[[0 for i in range(10)]for j in range(3)]for k in range(4)]
s='#'*20
n=input()
for i in range(n):b,f,r,v=map(int,raw_input().split());l[b-1][f-1][r-1]+=v
for i in range(4):
    for j in range(-3,0):print ' '+' '.join(map(str,l[i][j]))
    if i<3:print s

### FIXED CODE ###

n = int(input())
record = [ [ [0 for r in range(10)] for f in range(3)] for b in range(4)]
for _ in range(n):
    b,f,r,v = [int(i) for i in input().split(" ")]
    record[b - 1][f - 1][r - 1] += v
for b1 in range(4):
    for f in record[b1]:
        print(" "+" ".join([str(x) for x in f]))
    if b1 != 3:
        print("#" * 20)
S = input()

if S=='Sunny':
  print('Cloudy')
else:
  if S=='Cloudy':
    print('Rainy')
  else:
    print('Sunny')

### FIXED CODE ###

S = input()

if S=='Sunny':
  print('Cloudy')
else:
  if S=='Cloudy':
    print('Rainy')
  else:
    print('Sunny')
N = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))
C = list(map(int, input().split()))
 
answer = 0
 
for i in range(N):
  answer = answer + B[i]
  
for i in range(N):
  if i != 0:
    if A[i] == A[i-1]+1:
      answer = answer + C[a[i-1]-1]
    
print(answer)

### FIXED CODE ###

N = int(input())
print(N*N*N)
import sys

def dfs(x, y, sym):
	tile[x][y] = "."
	for i in range(len(DX)):
		nx = x + DX[i]
		ny = y + DY[i]
		if 0<=nx and nx<N and 0<=ny and ny<M and tile[nx][ny] is sym:
			dfs(nx, ny, sym)

def solve():
	res = 0
	for i in range(N):
		for j in range(M):
			sym = tile[i][j]
			if tile[i][j] != ".":
				if tile[i][j] is sym:
					dfs(i, j, sym)
					res += 1
	print(res)

counter=0
DX = [-1, 0, 1, 0]
DY = [0, -1, 0, 1]
sys.setrecursionlimit(10000000)

while True:
	counter+=1
	line = input()
	if ' ' in line:
		nums = line.split(" ")
		N = int(nums[0])
		M = int(nums[1])
		tile = [[0 for i in range(N)] for j in range(M)]
	if N is 0 and M is 0:
		break
	else:
		tile[counter-2] = list(line)
	if (counter-1)==M:
		solve()
		counter = 0

### FIXED CODE ###

# -*- coding:utf-8 -*-
import sys
def dfs(x, y, sym):
	tile[x][y] = "."
	for i in range(len(DX)):
		nx = x + DX[i]
		ny = y + DY[i]
		if (0<=nx and nx<N and 0<=ny and ny<M and tile[nx][ny] is sym):
			dfs(nx, ny, sym)

def solve():
	res = 0
	for i in range(N):
		for j in range(M):
			sym = tile[i][j]
			if tile[i][j] != ".":
				if tile[i][j] is sym:
					dfs(i, j, sym)
					res += 1
	print(res)

counter=0
DX = [-1,0,1,0]
DY = [0,-1,0,1]
sys.setrecursionlimit(10**7)
while True:
	line = input()
	if " " in line:
		nums = line.split(" ")
		N = int(nums[0])
		M = int(nums[1])
		tile = [[0 for i in range(M)] for j in range(N)]
	else:
		tile[counter-1] = list(line)
	if N is 0 and M is 0:
		break
	counter += 1
	if counter-1 is N:
		solve()
		counter = 0
H, W, m = map(int, input().split())
xs = [[0] * W for _ in range(H)]
for _ in range(m):
    h, w = map(int, input().split())
    xs[h - 1][w - 1] += 1

mxx = [0] * H
for i in range(H):
    sm = 0
    for j in range(W):
        sm += xs[i][j]
    mxx[i] = sm
mxy = [0] * W
for i in range(W):
    sm = 0
    for j in range(H):
        sm += xs[j][i]
    mxy[i] = sm
ans = 0
for i in range(H):
    for j in range(W):
        ans = max(ans, mxx[i] + mxy[j] - xs[i][j])
print(ans)


### FIXED CODE ###

H, W, m = map(int, input().split())
xs = [0] * H
ys = [0] * W
s = set()
for _ in range(m):
    h, w = map(int, input().split())
    h -= 1
    w -= 1
    xs[h] += 1
    ys[w] += 1
    s.add((h, w))

mx = max(xs)
my = max(ys)
mxs = set()
for i in range(H):
    if xs[i] == mx:
        mxs.add(i)
mys = set()
for i in range(W):
    if ys[i] == my:
        mys.add(i)
for x in mxs:
    for y in mys:
        if not (x, y) in s:
            print(mx + my)
            exit()
print(mx + my - 1)
# coding: utf-8
# Your code here!


from scipy.special import comb
mod = 10**9 + 7

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

for i in range(1,k+1):
    a = int(comb(k-1, i-1, exact=True)) % mod
    b = int(comb(n-k+1, i, exact=True)) % mod 
    print(a*b%mod)

### FIXED CODE ###

# coding: utf-8
# Your code here!


from scipy.misc import comb
mod = 10**9 + 7

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

for i in range(1,k+1):
    a = int(comb(k-1, i-1, exact=True)) % mod
    b = int(comb(n-k+1, i, exact=True)) % mod 
    print(a*b%mod)
from math import*
def fact_p(n):
  m=n
  i=2
  while n>1:
    if i>m**.5:
      a=n
      break
    while n%i==0:
      n//=i
      a=i
    i+=1  
  return a
n=int(input())
x2=y1=ceil(n**.5+.5) if ceil(n**.5+.5)<=10**9 else 10**9
x1=fact_p(x2*y1-n)
y2=(x2*y1-n)//x1
print(0,0,x1,y1,x2,y2)

### FIXED CODE ###

from math import*
def fact_p(n):
  m=n
  i=2
  a=0
  while n>1:
    if i>m**.5:
      a=n
      break
    while n%i==0:
      n//=i
      a=i
    i+=1  
  return a
n=int(input())
x2=y1=ceil(n**.5+.5) if ceil(n**.5+.5)<=10**9 else 10**9
x1=fact_p(x2*y1-n)
y2=(x2*y1-n)//x1 if x1 else 0
print(0,0,x1,y1,x2,y2)
import numpy as np
A = int(input())
B = int(input())
H = int(input())
M = int(input())

pai = 3.14
angle = 2*pai*(H/12- M/60)

distance = np.sqrt(A**2+B**2-2*A*B*np.cos(angle))
print(distance)


### FIXED CODE ###

import numpy as np
import math 
A, B, H, M = map(int, input().split())

pai = math.pi
angle = 2*pai*((H+M/60)/12 - M/60)

distance = np.sqrt(A**2+B**2-2*A*B*np.cos(angle))
print(distance)
n,q = map(int, input().split())
s = input()
lr = [list(map(int,input().split())) for i in range(q)]
for i in range(q):
  print(len(s[lr[i][0]-1:lr[i][1]].replace('AC',':').split(':'))-1)

### FIXED CODE ###

b = input()
tmp = ['A','T','A','C','G','C']
for i in range(6):
  if b == tmp[i]:
    print(tmp[i+1])
    break
count=0
for i in range(len(a)):
    for j in range(i+1,len(a)):
        lst = a[i].copy()
        for element in a[j]:
            try:
                lst.remove(element)
            except ValueError:
                pass
        if len(lst)==0:
            count+=1
print(count)

### FIXED CODE ###

import math
import collections

n=int(input())
a=[list(input()) for i in range(n)]
b=[str(sorted(list(i))) for i in a]
count=list(collections.Counter(b).values())
count=[i for i in count if i>1]
print(int(sum([math.factorial(x)/(math.factorial(x-2)*2) for x in count])))
N,K=map(int,input())

H=list(input())

cnt=0

for h in H:
  if h>K:
    cnt+=1
print(cnt)

### FIXED CODE ###

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

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

cnt=0

for h in H:
  if h>=K:
    cnt+=1
print(cnt)
# 2019/10/10

class unionfind():
    def __init__(self,n):
        self.par=list(range(n+1))
        self.rank=[0]*(n+1)
    
    def find(self,x):
        if self.par[x]==x:
            return x
        else:
            self.par[x]=self.find(self.par[x])
            return self.par[x]
    
    def is_same(self,x,y):
        return self.find(x)==self.find(y)
    
    def unite(self,x,y):
        x=self.find(x)
        y=self.find(y)
        if self.rank[x]<self.rank[y]:
            self.par[x]=y
        else:
            self.par[y]=x
            if self.rank[x]==self.rank[y]:
                self.rank[x]+=1

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

uf=unionfind(n)

for i in range(m):
    x,y=map(int,input().split())
    uf.unite(x,y)
    uf.unite(y,x)

ans=set(uf.par[1:])
print(len(ans))

### FIXED CODE ###

# 2019/10/10

class unionfind():
    def __init__(self,n):
        self.par=list(range(n+1))
        self.rank=[0]*(n+1)
        self.groups=n
    
    def find(self,x):
        if self.par[x]==x:
            return x
        else:
            self.par[x]=self.find(self.par[x])
            return self.par[x]
    
    def is_same(self,x,y):
        return self.find(x)==self.find(y)
    
    def unite(self,x,y):
        x=self.find(x)
        y=self.find(y)
        if self.rank[x]<self.rank[y]:
            self.par[x]=y
        else:
            self.par[y]=x
            if self.rank[x]==self.rank[y]:
                self.rank[x]+=1
        if x!=y:self.groups-=1

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

uf=unionfind(n)

for i in range(m):
    x,y,z=map(int,input().split())
    uf.unite(x,y)
print(uf.groups)
import sys
input = sys.stdin.readline

h,w,a,b=map(int,input().split())
l=[]
for i in range(b):
    l.append([0]*a+[1]*(h-a))
for _ in range(w-b):
    l.append([1]*a+[0]*(h-a))
for k in range(h):
    s=""
    for v in range(w):
        s+=str(l[k][v])
    print(s)

### FIXED CODE ###

import sys
input = sys.stdin.readline

h,w,a,b=map(int,input().split())
l=[]
for i in range(b):
    l.append([0]*a+[1]*(w-a))
for _ in range(h-b):
    l.append([1]*a+[0]*(w-a))
for k in range(h):
    s=""
    for v in range(w):
        s+=str(l[k][v])
    print(s)
import itertools
N = int(input())
s = list(map(lambda x: True if x == "o" else False, list(input())))

# N = 6
# s = "ooxoox"
# N = 3
# s = "oox"
s = [True, True, False]

def hantei(N,s):
    f = lambda x,y: not(x^y)
    for onetwo in itertools.product((True, False), (True, False)):
        res = {}
        for n in range(N):
            if n == 0:
                res[n] = onetwo[0]
            elif n == 1:
                res[n] = onetwo[1]
            else:
                res[n] = f(res[n-2], f(res[n-1], s[n-1]))
        # check s[0]
        if not ((res[1] == res[N-1]) ^ res[0]) == s[0]:
            if not ((res[0] == res[N-2]) ^ res[N-1]) == s[N-1]:
                print(''.join(map(lambda x: "S" if x == 0 else "W", res.values())))
                return True

    return False

if not hantei(N, s):
    print(-1)
    


### FIXED CODE ###

import itertools
N = int(input())
s = list(input())

def hantei(N,s):
    for onetwo in itertools.product((0, 1), (0, 1)):
        res = {}
        for n in range(N):
            if n == 0:
                res[n] = onetwo[0]
            elif n == 1:
                res[n] = onetwo[1]
            else:
                if res[n-1] == 0 and s[n-1] == "o":
                    res[n] = res[n-2]
                elif res[n-1] == 0 and s[n-1] == "x":
                    res[n] = 1 if res[n-2] == 0 else 0
                elif res[n-1] == 1 and s[n-1] == "o":
                    res[n] = 1 if res[n-2] == 0 else 0
                elif res[n-1] == 1 and s[n-1] == "x":
                    res[n] = res[n-2]
        # check s[0]
        if (res[1] == res[N-1]) and res[0] == 0 and s[0] == "x":
            continue
        if (res[1] == res[N-1]) and res[0] == 1 and s[0] == "o":
            continue
        if (res[1] != res[N-1]) and res[0] == 0 and s[0] == "o":
            continue
        if (res[1] != res[N-1]) and res[0] == 1 and s[0] == "x":
            continue
        # check s[n-1]
        if (res[0] == res[N-2]) and res[N-1] == 0 and s[N-1] == "x":
            continue
        if (res[0] == res[N-2]) and res[N-1] == 1 and s[N-1] == "o":
            continue
        if (res[0] != res[N-2]) and res[N-1] == 0 and s[N-1] == "o":
            continue
        if (res[0] != res[N-2]) and res[N-1] == 1 and s[N-1] == "x":
            continue

        print(''.join(map(lambda x: "S" if x == 0 else "W", res.values())))
        return True

    return False

if not hantei(N, s):
    print(-1)
H, W = map(int, input().split())
S = []
for _ in range(H):
    S.extend(input())

T = [-1] * H * W
if S[0] == '#':
    T[0] = 1
else:
    T[0] = 0
S[0] = '-'

k = 0
v = T[k]
R = {k:v}

def get_search_address(add):
    p = []
    x = add % W
    y = add // W
    next_x = x+1
    next_y = y+1
    if next_x <= (H-1):
        p.append(W*y+next_x)
    if next_y <= (W-1):
        p.append(W*next_y+x)
    return p

while R:
    k = min(R, key=R.get)
    # print('k:{}'.format(k))
    p = get_search_address(k)
    # print('p:{}'.format(p))
    for n in p:
        # print('n:{}'.format(n))
        if T[n] == -1:
            if S[n] == '-':
                if T[k]+1 < T[n]:
                    T[n] = T[k]+1
            elif S[n] == '#':
                T[n] = T[k]+1
                S[n] == '-'
                R[n] = T[n]
            else:
                T[n] = T[k]
                S[n] == '-'
                R[n] = T[n]
    del R[k]
    # print('R:{}'.format(R))
    # print('T:{}'.format(T))

print(T[H*W-1])


### FIXED CODE ###

H, W = map(int, input().split())
S = [input() for _ in range(H)]

dp = [[float('inf') for _ in range(W)] for _ in range(H)]

if S[0][0] == '#':
    dp[0][0] = 1
else:
    dp[0][0] = 0

for i in range(1, W):
    if S[0][i] == '.':
        dp[0][i] = dp[0][i-1]
    else:
        if S[0][i-1] == '.':
            dp[0][i] = dp[0][i-1] + 1
        else:
            dp[0][i] = dp[0][i-1]

for j in range(1, H):
    if S[j][0] == '.':
        dp[j][0] = dp[j-1][0]
    else:
        if S[j-1][0] == '.':
            dp[j][0] = dp[j-1][0] + 1
        else:
            dp[j][0] = dp[j-1][0]

for j in range(1, H):
    for i in range(1, W):
        if S[j][i-1] == '.' and S[j][i] == '#':
            dp[j][i] = min(dp[j][i], dp[j][i-1] + 1)
        else:
            dp[j][i] = min(dp[j][i], dp[j][i-1])
        if S[j-1][i] == '.' and S[j][i] == '#':
            dp[j][i] = min(dp[j][i], dp[j-1][i] + 1)
        else:
            dp[j][i] = min(dp[j][i], dp[j-1][i])

print(dp[H-1][W-1])
n = int(intput())
if n % 2 == 0:
  print(n // 2)
else:
  print(n // 2 + 1)

### FIXED CODE ###

n = int(input())
if n%2 == 0:
	print(n//2)
else:
    print(n//2+1)
N = int(input())
S = input()
ans = 0
for i in range(N):
    if S[i] == "A":
        if S[i + 1] == "B":
            if S[i + 2] == "C":
                ans += 1
print(ans)

### FIXED CODE ###

N = int(input())
S = input()
ans = 0
for i in range(N - 2):
    if S[i] == "A" :
        if S[i + 1] == "B":
            if S[i + 2] == "C":
                ans += 1
print(ans)
def main():
    N = int(input())
    S_list = []
    for _ in range(N):
        S_list.append(input())

    S_dict = {}
    for s in S_list:
        S_dict[s]=0
    for s in S_list:
        S_dict[s]+=1

    max_kv = max(S_dict.values())

    max_k_list = [kv[0] for kv in S_dict.items() if kv[1] == max_kv]
    max_k_list.sort()
    for k in max_k_list:
        print(k)

if __name__ == '__main__'
     main()

### FIXED CODE ###

def main():
    N = int(input())
    S_list = []
    for _ in range(N):
        S_list.append(input())

    S_dict = {}
    for s in S_list:
        S_dict[s]=0
    for s in S_list:
        S_dict[s]+=1

    max_v = max(S_dict.values())

    max_k_list = [kv[0] for kv in S_dict.items() if kv[1] == max_v]
    max_k_list.sort()
    for k in max_k_list:
        print(k)

if __name__ == '__main__':
     main()
W, H ,x, y = map(int, input().split())
if W % x == 0 and H % y == 0:
    print((W * H) /2, 1)
else:
    if x > y:
      print(min(W * y, W * (H - y)), 0)
    else:
      print(min(H * x, H * (W - x)), 0)
        


### FIXED CODE ###

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

print(W * H / 2, end=" ")
if 2 * x == W and 2 * y == H:
    print(1)
else:
    print(0)
a,b=map(int,input().split())
if a<10&&b<10:
	print(a*b)
else:
	print(-1)

### FIXED CODE ###

a,b=map(int,input().split())
if a<10 and b<10:
	print(a*b)
else:
	print(-1)
Boin=["a","i","u","e","o"]
S = str(input())

if S in Boin:
    print(“vowel”)
else:
    print(“consonant”)

### FIXED CODE ###


Boin=["a","i","u","e","o"]

S = str(input())

if S in Boin:

    print("vowel")

else: 

    print("consonant")
m = int(input())
     
    def fizz_buzz(i):
      fizz = i % 3
      buzz = i % 5
      
      return (fizz > 0) && (buzz > 1)
     
    res = 0
     
    for i in range(m):
      use_i = i+1
      if fizz_buzz(use_i):
        res += use_i
        
    print(res)

### FIXED CODE ###

m = int(input())
     
def fizz_buzz(i):
  fizz = i % 3
  buzz = i % 5
      
  return (fizz > 0) & (buzz > 0)
     
res = 0
     
for i in range(m):
  use_i = i+1
  if fizz_buzz(use_i):
    res += use_i
        
print(res)
N = int(input())
L = list(map(int,input().split()))
for i in range(N):
    L[i] = L[i] - (i+1)
L = sorted(L)
#print(L)
ans = 0
import statistics 
med = int(statistics.median(L))
#print(med)
for i in range(N):
    ans+=abs(L[i]-med)
print(ans)


### FIXED CODE ###

N = int(input())
L = list(map(int,input().split()))
for i in range(N):
    L[i] = L[i] - (i+1)
L = sorted(L)
#print(L)
ans = 0
n=len(L)
med = int(L[(n+1)//2-1])
#print(med)
for i in range(N):
    ans+=abs(L[i]-med)
print(ans)
from math import gcd 
N = int(input())
i = 0
 
for a in range(1, N+1):
    for b in range(1, N+1):
        for c in range(1, N+1):
            i += gcd(a, b, c)
            
print(i)


### FIXED CODE ###

from math import gcd 
N = int(input())
i = 0
 
for a in range(1, N+1):
    for b in range(1, N+1):
        for c in range(1, N+1):
            i += gcd(gcd(a, b), c)
            
print(i)