Harryxun/stf_run huggingface dataset:
O=list(input())
E=(input())+[""]
for o,e in zip(O,E): print(o+e,end="")


### FIXED CODE ###

O=list(input())
E=list(input())+[""]
for o,e in zip(O,E): print(o+e,end="")
a = input()
b = input()
print( int(a) * int(b), 2 * ( int(a) + int(b) ) )



### FIXED CODE ###

a,b = input().split()
a = int( a )
b = int( b )
print(  a * b, 2 * ( a + b ) )
h,w,m=map(int,input().split())
g=[]
e1=[0]*h
e2=[0]*w
for c in range(m):
    a,b=map(int,input().split())
    g.append([a-1,b-1])
    e1[a-1]+=1
    e2[b-1]+=1
p1=max(e1)
p2=max(e2)
x=[1 if e1[c]==p1 else 0 for c in range(h)]
y=[1 if e2[c]==p2 else 0 for c in range(w)]
r=sum(x)*sum(y)
for i in g:
    if x[i[0]]==1 and y[i[1]]==1:
        r-=1
if r==0:
    print(p+q-1)
else:
    print(p+q)

### FIXED CODE ###

h,w,m=map(int,input().split())
g=[]
e1=[0]*h
e2=[0]*w
for c in range(m):
    a,b=map(int,input().split())
    g.append([a-1,b-1])
    e1[a-1]+=1
    e2[b-1]+=1
p1=max(e1)
p2=max(e2)
x=[1 if e1[c]==p1 else 0 for c in range(h)]
y=[1 if e2[c]==p2 else 0 for c in range(w)]
r=sum(x)*sum(y)
for i in g:
    if x[i[0]]==1 and y[i[1]]==1:
        r-=1
if r==0:
    print(p1+p2-1)
else:
    print(p1+p2)
n=input()
a=list(map(int,input().split()))

Max=0
Min=10**9

for i in range(n):
  if(Max<a[i]):
    Max=a[i]
  if(min>a[i]):
    Min=a[i]

print(abs(Max-Min))

### FIXED CODE ###

n=int(input())
mylist=list(map(int,input().split()))
mymax=max(mylist)
mymin=min(mylist)
print(abs(mymax-mymin))
A,B = list(map(int,input().split()))
for i in range():
  if i%A == 0 and i%B == 0:
    ans = i
  else:
    i += 0
print(ans)

### FIXED CODE ###

from fractions import gcd
A,B = map(int,input().split())
lcm = A * B // gcd(A, B)
print(lcm)
a, b = map(int, input().split())

print(max(a+b, a-b, a*b)

### FIXED CODE ###

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

print(max([a+b, a-b, a*b]))
while True:
    try:
        p=raw_input()
    except:
        break
    ip+=p.lower()
alphabet = 'abcdefghijklmnopqrstuvwxyz'
for i in alphabet:
    print i +' : '+ str(ip.count(i))

### FIXED CODE ###

ip=''
while True:
    try:
        p=raw_input()
    except:
        break
    ip+=p.lower()
alphabet = 'abcdefghijklmnopqrstuvwxyz'
for i in alphabet:
    print i +' : '+ str(ip.count(i))
# Hariom_Pandey
# 11.11.2019
from functools import reduce
import math as mt
n = int(sys.stdin.readline())
H = list(map(int,sys.stdin.readline().split())) 
print(reduce(mt.gcd,H))


### FIXED CODE ###

# Hariom_Pandey
# 11.11.2019
from functools import reduce
from fractions import gcd
import sys
n = int(sys.stdin.readline())
H = list(map(int,sys.stdin.readline().split()))
print(reduce(gcd,H))
X = input()
Y = input()
x = len(X)
y = len(Y)

dp = [[0 for _ in range(y + 1)] for _ in range(x + 1)]
for i in range(x):
	for j in range(y):
		if X[i] == Y[j]:
            dp[i + 1][j + 1] = dp[i][j] + 1
		else:
			dp[i + 1][j + 1] = max(dp[i][j + 1], dp[i + 1][j])

print(dp[x][y])

### FIXED CODE ###

# educational DP contest F

X = input()
Y = input()
x = len(X)
y = len(Y)

dp = [[0 for _ in range(y + 1)] for _ in range(x + 1)]
for i in range(x):
    for j in range(y):
        if X[i] == Y[j]:
            dp[i + 1][j + 1] = dp[i][j] + 1
        else:
            dp[i + 1][j + 1] = max(dp[i][j + 1], dp[i + 1][j])

# print(dp[x][y])

ans = ''
while x > 0 and y > 0:
    if dp[x][y] == dp[x][y - 1]:
        y -= 1
    elif dp[x][y] == dp[x - 1][y]:
        x -= 1
    else:
        ans += X[x - 1]
        x -= 1
        y -= 1

print(ans[::-1])
import math
from functools import reduce

N = int(input())
input_list = sorted([int(input()) for i in range(N)])

# 最小公倍数を求めるだけ
def lcm_base(x, y):
    return (x * y) // math.gcd(x, y)

def lcm(*numbers):
    return reduce(lcm_base, numbers, 1)

print(lcm(*input_list))

### FIXED CODE ###

from functools import reduce

N = int(input())
input_list = sorted([int(input()) for i in range(N)])

# ユークリッドの互除法
def gcd(x, y):
    if y == 0:
        return x
    else:
        return gcd(y, x % y)

def lcm_base(x, y):
    return (x * y) // gcd(x, y)

def lcm(*numbers):
    return reduce(lcm_base, numbers, 1)

print(lcm(*input_list))
if a+b+C>=22:
    print(bust)
else:
    print(win)

### FIXED CODE ###

A1,A2,A3=map(int,input().split())

if A1+A2+A3>=22:
  print("bust")
else:
  print("win")
n = input()
inf = 1000000000
M = [[inf for i in range(n)] for i in range(n)]
for i in range(n):
  str = raw_input().split()
  u = int(str[0])
  k = int(str[1])
  for j in xrange(k):
    v = int(str[2+j])
    c = int(str[3+j])
    M[u][v] = c
d = [inf for i in range(n)]
color = [0 for i in range(n)]

d[0] = 0
color[0] = 1

while 1:
  minv = inf
  u = -1
  for i in range(n):
    if minv>d[i] and color[i]!=2:
      u = i
      minv = d[i]
    print minv
  if u == -1:
    break
  color[u] = 2
  for v in range(n):
    if color[v]!=2 and M[u][v]!=inf:
      if d[v]>d[u]+M[u][v]:
        d[v] = d[u] + M[u][v]
        color[v] = 1
for i in range(n):
  if d[i]==inf:
    print '%d -1' % i
  else:
    print '%d %d' % (i, d[i])

### FIXED CODE ###

n = input()
inf = 1000000000
M = [[inf for i in range(n)] for i in range(n)]
for i in range(n):
  str = map(int, raw_input().split())
  u = str[0]
  k = str[1]
  for j in range(k):
    v = str[2+2*j]
    c = str[3+2*j]
    M[u][v] = c
d = [inf for i in range(n)]
color = [0 for i in range(n)]
 
d[0] = 0
color[0] = 1
 
while 1:
  minv = inf
  u = -1
  for i in range(n):
    if minv>d[i] and color[i]!=2:
      u = i
      minv = d[i]
  if u == -1:
    break
  color[u] = 2
  for v in range(n):
    if color[v]!=2 and M[u][v]!=inf:
      if d[v]>d[u]+M[u][v]:
        d[v] = d[u] + M[u][v]
        color[v] = 1
for i in range(n):
  if d[i]==inf:
    print '%d -1' % i
  else:
    print '%d %d' % (i, d[i])
x=input().split()
a=int(x[0])
b=int(x[1])
print("%d %r %f"%(a//b, a%b, a/b)


### FIXED CODE ###

x=input().split()
a=int(x[0])
b=int(x[1])
print("%d %d %f"%(a//b, a%b, a/b))
n = int(input())
b = list(map(int,input().split()))
sum = 0
for i in range(n-1):
    first = b[i]
    second = 0
    for j in range(i+1,n):
        if(second < b[j]):
            if(first < b[j]):
                second = first
                first = b[j]
            else:
                second = b[j]
        sum += second
print(sum)

### FIXED CODE ###

a=int(input())
b = a**3
print(b)
alpha = input()
if alpha.isupper():
  output = A
else:
  output = a

print(output)


### FIXED CODE ###

alpha = input()
if alpha.isupper():
  output = 'A'
else:
  output = 'a'

print(output)
s=input()
count=0
for i in range(s.length):
  if s[i]==1:
    count+=1

print(count) 

### FIXED CODE ###

s=input()
count=0
for i in range(len(s)):
  if int(s[i])==1:
    count+=1
 
print(count)
N = int(input())
X = 1
while(N>=X):
  　X = X<<1
print(X>>1)


### FIXED CODE ###

N = int(input())
X = 1
while(N>=X):
  X = X<<1
print(X>>1)
a,b,k = map(int,input().split())
li = []
if k >= b - a:
    print([x for x in range(a,b+1)])
else:
    for i in range(k):
        li.append(a + i)
    for i in range(k):
        li.append(b - i)
    for i in sorted(li):#sorted()で昇順にできる
     　 print(i)

### FIXED CODE ###

a,b,k = map(int,input().split())
li = []
if 2 * k > b - a:
    for x in range(a,b+1):
        print(x)
else:
    for i in range(k):
        li.append(a + i)
    for i in range(k):
        li.append(b - i)
    for i in sorted(set(li)):
        print(i)
from collections import deque

n, s, t = map(int, input().split(' '))
s -= 1
t -= 1

v = [[] for i in range(n)]
f = [0]*n

for i in range(n-1):
    a, b = map(int, input().split(' '))
    a -= 1
    b -= 1
    v[a].append(b)
    v[b].append(a)
    f[a] += 1
    f[b] += 1
for i in range(n):
    if f[i] == 0:
        l.append(i)
depth = [-1]*n
depth[t] = 0
q = deque([t])
while q:
    x = q.popleft()
    for y in v[x]:
        if depth[y] < 0:
            depth[y] = depth[x]+1
            q.append(y)
l = depth[:]
d = [-1]*n
d[s] = 0
q = deque([s])
while q:
    x = popleft()
    for y in v[x]:
        if d[y] < 0:
            d[y] = d[x]+1
            q.append(y)
l = sorted(range(n), key=lambda x:-depth[x])
for i in l:
    if d[i] < depth[i]:
        break
print(depth[i] - 1)



### FIXED CODE ###

from collections import deque

n, s, t = map(int, input().split(' '))
s -= 1
t -= 1

v = [[] for i in range(n)]
f = [0]*n

for i in range(n-1):
    a, b = map(int, input().split(' '))
    a -= 1
    b -= 1
    v[a].append(b)
    v[b].append(a)
    f[a] += 1
    f[b] += 1
for i in range(n):
    if f[i] == 0:
        l.append(i)
depth = [-1]*n
depth[t] = 0
q = deque([t])
while q:
    x = q.popleft()
    for y in v[x]:
        if depth[y] < 0:
            depth[y] = depth[x]+1
            q.append(y)
l = depth[:]
d = [-1]*n
d[s] = 0
q = deque([s])
while q:
    x = q.popleft()
    for y in v[x]:
        if d[y] < 0:
            d[y] = d[x]+1
            q.append(y)
l = sorted(range(n), key=lambda x:-depth[x])
for i in l:
    if d[i] < depth[i]:
        break
print(depth[i] - 1)
a = int().input()

N = a[0]
M = a[1]

b = 0
c = []

while true:
  if b > M:
  	break
  e = input(int())
  c.append(e)
  b += 1

d = 0
  
for i in c:
  d += i

if d > N:
  print(-1)
else:
  print(N-d)


### FIXED CODE ###

a = input().split()

N = int(a[0])


c = input().split()



d = 0
  
for i in c:
  d += int(i)

if d > N:
  print(-1)
else:
  print(N-d)
a = int(input())
b = int(input())
c = int(input())
d = int(input())
e = int(input())

mod_list = []

a_mod = a % 10
if a_mod == 0:
    a_total = a
else:
    a_total = a + (10 - a_mod)
    mod_list.append(a_mod)

b_mod = b % 10
if b_mod == 0:
    b_total = b
else:
    b_total = b + (10 - b_mod)
    mod_list.append(b_mod)

c_mod = c % 10
if c_mod == 0:
    c_total = c
else:
    c_total = c + (10 - c_mod)
    mod_list.append(c_mod)

d_mod = d % 10
if d_mod == 0:
    d_total = d
else:
    d_total = d + (10 - d_mod)
    mod_list.append(d_mod)

e_mod = e % 10
if e_mod == 0:
    e_total = e
else:
    e_total = e + (10 - e_mod)
    mod_list.append(e_mod)

min_mod = 0
min_mod = min(mod_list)

if min_mod == 0:
    cut_time = 0
else:
    cut_time = 10 - min(mod_list)

print(a_total + b_total + c_total + d_total + e_total - cut_time)

### FIXED CODE ###

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

mod_list = []

a_mod = a % 10
if a_mod == 0:
    a_total = a
else:
    a_total = a + (10 - a_mod)
    mod_list.append(a_mod)

b_mod = b % 10
if b_mod == 0:
    b_total = b
else:
    b_total = b + (10 - b_mod)
    mod_list.append(b_mod)

c_mod = c % 10
if c_mod == 0:
    c_total = c
else:
    c_total = c + (10 - c_mod)
    mod_list.append(c_mod)

d_mod = d % 10
if d_mod == 0:
    d_total = d
else:
    d_total = d + (10 - d_mod)
    mod_list.append(d_mod)

e_mod = e % 10
if e_mod == 0:
    e_total = e
else:
    e_total = e + (10 - e_mod)
    mod_list.append(e_mod)

min_mod = 0
if len(mod_list) != 0:
    min_mod = min(mod_list)

if min_mod == 0:
    cut_time = 0
else:
    cut_time = 10 - min(mod_list)

print(a_total + b_total + c_total + d_total + e_total - cut_time)
s = list(map(int, input().split()))

n = s[0]
blue = s[1]
red = s[2]

temp = ""

while len(temp) < n:
    temp += "b" * blue + "r" * red

print(temp[:n].count('b'))

### FIXED CODE ###

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

ans = N // (A + B) * A
rem = N % (A + B)
ans += min(rem, A)
print(ans)
n = int(raw_input())
stuck = ["" for i in range(n)]
while True:
    a = raw_input().split()
    if a[0] == "quit":
        break
    if a[0] == "push":
        stuck[a[1]] += a[2]
    elif a[0] == "pop":
        l = len(stuck[a[1]]) - 1
        print stuck[a[1]][l]
        stuck[a[1]] = stuck[a[1]][:l]
    elif a[0] == "move"
        l = len(stuck[a[1]]) - 1
        stuck[a[2]] += stuck[a[1]][l]
        stuck[a[1]] = stuck[a[1]][:l]

### FIXED CODE ###

n = int(raw_input())
s = ["" for i in range(n)]

while True:
    a = raw_input().split()
    if a[0] == "quit":
        break

    i = int(a[1]) - 1
    if a[0] == "push":
        s[i] += a[2]

    elif a[0] == "pop":
        l = len(s[i]) - 1
        print s[i][l]
        s[i] = s[i][:l]

    elif a[0] == "move":
        j = int(a[2]) - 1 
        l = len(s[i]) - 1
        s[j] += s[i][l]
        s[i] = s[i][:l]
for i in range(1,10):
for j in range(1,10):
print(i * j)
print()



### FIXED CODE ###

print ("1x1=1")
print ("1x2=2")
print ("1x3=3")
print ("1x4=4")
print ("1x5=5")
print ("1x6=6")
print ("1x7=7")
print ("1x8=8")
print ("1x9=9")
print ("2x1=2")
print ("2x2=4")
print ("2x3=6")
print ("2x4=8")
print ("2x5=10")
print ("2x6=12")
print ("2x7=14")
print ("2x8=16")
print ("2x9=18")
print ("3x1=3")
print ("3x2=6")
print ("3x3=9")
print ("3x4=12")
print ("3x5=15")
print ("3x6=18")
print ("3x7=21")
print ("3x8=24")
print ("3x9=27")
print ("4x1=4")
print ("4x2=8")
print ("4x3=12")
print ("4x4=16")
print ("4x5=20")
print ("4x6=24")
print ("4x7=28")
print ("4x8=32")
print ("4x9=36")
print ("5x1=5")
print ("5x2=10")
print ("5x3=15")
print ("5x4=20")
print ("5x5=25")
print ("5x6=30")
print ("5x7=35")
print ("5x8=40")
print ("5x9=45")
print ("6x1=6")
print ("6x2=12")
print ("6x3=18")
print ("6x4=24")
print ("6x5=30")
print ("6x6=36")
print ("6x7=42")
print ("6x8=48")
print ("6x9=54")
print ("7x1=7")
print ("7x2=14")
print ("7x3=21")
print ("7x4=28")
print ("7x5=35")
print ("7x6=42")
print ("7x7=49")
print ("7x8=56")
print ("7x9=63")
print ("8x1=8")
print ("8x2=16")
print ("8x3=24")
print ("8x4=32")
print ("8x5=40")
print ("8x6=48")
print ("8x7=56")
print ("8x8=64")
print ("8x9=72")
print ("9x1=9")
print ("9x2=18")
print ("9x3=27")
print ("9x4=36")
print ("9x5=45")
print ("9x6=54")
print ("9x7=63")
print ("9x8=72")
print ("9x9=81")
n,l=map(int,input().split())
s=[]
res=''
for i in range(n):
  s.append(input())
s.sort()
for k in range(n):
  res+=s[k]
print(res)

### FIXED CODE ###

str=input().split()
str.sort()
if str==['5','5','7']:
  print('YES')
else:
  print('NO')
# # abc175_a.py
S = input()
ans  = []
cnt = 0
for i in S:
    if i =="S":
        ans.append(cnt)
        cnt = 0
    else:
        cnt+=1
print(max(max(ans),cnt))


### FIXED CODE ###

# # abc175_a.py
S = input()
ans  = [0]
cnt = 0
for i in S:
    if i =="S":
        ans.append(cnt)
        cnt = 0
    else:
        cnt+=1
print(max(max(ans),cnt))
N = int(input())

a = [int(n) for n in input().split()].sort()

print(a[N-1] - a[0])

### FIXED CODE ###

N = int(input())

a = [int(n) for n in input().split()]
a = sorted(a)
print(a[N-1] - a[0])
o = str(input())
e = str(input())

s = ''

for i in range(len(o)):
  s += o[i]
  s += e[i]

if len(o) == len(e) +1:
  s += o[-1]

print(s)

### FIXED CODE ###

o = str(input())
e = str(input())

s = ''

for i in range(len(e)):
  s += o[i]
  s += e[i]

if len(o) == len(e) +1:
  s += o[-1]

print(s)
import sys
import itertools
read = sys.stdin.buffer.read #全てまとめて文字列として格納
readline = sys.stdin.buffer.readline # 一行読む
readlines = sys.stdin.buffer.readlines # 全行リストに格納

H,N = map(int, readline().split())
A = list(map(int, readline().split()))

if sum(A) >= H:
  print('Yes')
  exit()
print('No')
eixt()

### FIXED CODE ###

import sys
import itertools
read = sys.stdin.buffer.read #全てまとめて文字列として格納
readline = sys.stdin.buffer.readline # 一行読む
readlines = sys.stdin.buffer.readlines # 全行リストに格納

H,N = map(int, readline().split())
A = list(map(int, readline().split()))

if sum(A) >= H:
  print('Yes')
  exit()
else:
  print('No')
  exit()
def L(N):
    if N==0:
        return 1
    else:
        prev_L = L(N-1)
        return 1+prev_L+1+prev_L+1
def numP(N):
    if N==0:
        return 1
    else:
        prev_P = numP(N-1)
        return 2*prev_P+1
def eated_P(N,X):
    ans = 0
    fh=int(L(2)/2)
    if X==0:
        return 0
    elif N==0:
        return 1
    elif fh<X:
        ans = numP(N-1)+1+eated_P(N-1,X-fh-1)
        return ans
    else:
        ans = eated_P(N-1,X-N-1)
        return ans
N,X = map(int(), input().split())
print(eated_P(N,X))

### FIXED CODE ###

def L(N):
    if N==0:
        return 1
    else:
        prev_L = L(N-1)
        return 1+prev_L+1+prev_L+1
def numP(N):
    if N==0:
        return 1
    else:
        prev_P = numP(N-1)
        return 2*prev_P+1
def eated_P(N,X):
    ans = 0
    fh=int(L(N)/2)
    if X<=0:
        return 0
    elif N==0:
        return 1
    elif fh<X:
        ans = numP(N-1)+1+eated_P(N-1,X-fh-1)
        return ans
    else:
        rem = X-1
        ans = eated_P(N-1,rem)
        return ans
N,X = map(int,input().split())
print(eated_P(N,X))
H, W, h, w =list(map(int,input().split()))
INF = 10**10
mat = [[1 for _ in range(H)] for _ in range(W)]
for i in range(h):
    for j in range(w):
        mat[i][j] =1
mat[h-1][w-1]  = -h*w

for i in range(H-h+1):
    for j in range(W-w+1):
        _sum = 0
        for p in range(h):
            for q in range(w):
                tmp = mat[j+q][i+p]
                if p==h-1 and q ==w-1: #corner
                    mat[j+q][i+p]=-_sum -1
                    #print(i+p,j+q)
                _sum +=tmp

#print(mat)
if (sum(sum(mat[j][i] for i in range(H)) for j in range(W)))< 0:
    print("No")
else:
    print("Yes")
    for i in range(H):
        for j in range(W):
            print(mat[j][i], end =" ")
        print("")

### FIXED CODE ###

H, W, h, w =list(map(int,input().split()))
INF = 10**10
mat = [[1000 for _ in range(H)] for _ in range(W)]

val =-h*w*1000+ 999
for h_new in range(h-1,H,h):
    for w_new in range(w-1,W,w):
        mat[w_new][h_new] = val

if (sum(sum(mat[j][i] for i in range(H)) for j in range(W)))< 0:
    print("No")
else:
    print("Yes")
    for i in range(H):
        for j in range(W):
            print(mat[j][i], end =" ")
        print("")
n=int(input())
a=int(input())
b=int(input())
densha=n*a
taxi=b
if densha>taxi:
    print(taxi)
elif densha<taxi:
    print(densha)
else :
    print(densha)

### FIXED CODE ###

n,a,b=map(int,input().split())
densha=n*a
taxi=b
if densha>taxi:
    print(taxi)
elif densha<taxi:
    print(densha)
else:
    print(densha)
a, b ,n = map(int, input().split())

if a == b and b == c:
    print(a-1)
else:
    if a <= b:
        if a >= n:
            #n_tmp = n % a
            #print(n_tmp)
            #if n_tmp == 0:
            n_tmp = n
            ans = int(a*n_tmp/b) - a*int(n_tmp/b)
            #print(ans)
            #print('####')
    
            ##for x in range(n+1):
             #   ans = int(a*x/b) - a*int(x/b)
             #   print(ans)
    
        else:
            ans = a-1
            print(ans)
    
            ##for x in range(n + 1):
             #   ans = int(a*x/b) - a*int(x/b)
             #   print(ans)
    
    
    else:
        if a >= n:
            ans_max = 0
            n_tmp = n
            for x in range(n_tmp+1):
                ans = int(a*x/b) - a*int(x/b)
                #print(ans)
                if ans_max < ans:
                    ans_max = ans
    
            print(ans_max)
    
        else:
            ans_max = 0
            n_tmp = a
            for x in range(n_tmp + 1):
                ans = int(a * x / b) - a * int(x / b)
                #print(ans)
                if ans_max < ans:
                    ans_max = ans
    
            #print('max##########################')
            print(ans_max)
    
            #print('#########################')
            #for x in range(n + 1):
            #    ans = int(a * x / b) - a * int(x / b)
            #    print(ans)
                #if ans_max < ans:
                #    ans_max = ans
    
            #print(ans_max)


### FIXED CODE ###

a, b ,n = map(int, input().split())
tmp = min(b-1, n)
print(str(int(a*tmp/b)-a*int(tmp/b)))
from math import pi

r = int(input())

# 面積
circle_area = r**r * pi

# 円周
circumference = 2.0 * r * pi

print("{0:.6f}, {0:.6f}".format(circle_area, circumference))


### FIXED CODE ###

from math import pi

r = float(input())

# 面積
circle_area = r * r * pi
# 円周
circumference = 2.0 * r * pi

print("{} {}".format(circle_area, circumference))
from fractions import gcd
N, M=map(int, input().split())
A=list(map(int, input().split()))
#最上公倍数
def lcm(x, y):
  return (x * y) //gcd(x, y)
#最小半公倍数
def half_lcm(a,b):
  X=lcm(a,b)//2
  return X

S=[0]*(N-1)
now=A[0]
for i in range(1,N):
  now=lcm(now, A[i])
  S[i-1]=now
  
kobai=S[-1]
hkobai=kobai//2
print(1+(M-hkobai)//kobai)




#6*(2.5,7.5,12.5,17.5
#10*(1.5,4.5,7.5,10.5)
#15,45,75,105
#4 (2.5,)
#10(1,)

### FIXED CODE ###

N,M=map(int, input().split())
from collections import defaultdict
A=list(map(int, input().split()))
B=[]
import math
def lcm(x, y):
    return (x * y) // math.gcd(x, y)
# a 偶数
twos=0
D=defaultdict(int)
for i in range(N):
    B.append(A[i]//2)
    a=A[i]
    now=0
    while a%2==0:
        a//=2
        now+=1
    D[now]+=1
    twos=max(twos, now)
if len(set(D.values()))!=1:
    print(0)
    exit()
now=1
for i in range(N):
    now=lcm(now, B[i])

# 1.5 * 3 2*5
from math import ceil
ans=M//(now*pow(2,twos))+1
#res=now+now%(2**twos)
ans=ceil(M//now/2)
#if M-res>0:
#    ans-=int((M-res)//now/(2**twos))

print(ans)
import itertools

def main():
    h, w, a, b = map(int, input().split())
    mx_0 = [[1 if i < a else 0 for i in range(w)]]
    s01 = [1 if i < a else 0 for i in range(w)]
    ss = list(set(itertools.permutations(s01, w)))
    if a != w - a:
        s10 = [0 if i < a else 1 for i in range(w)]
        ss10 = list(set(itertools.permutations(s10, w)))
        ss.extend(ss10)

    mx01 = list(set(itertools.permutations(ss, h - 1)))
    for m in mx01:
        mx = mx_0.copy()
        mx.extend(m)
        flg = 1
        for i in range(w):
            b01 = [x[i] for x in mx]
            bsum = sum(b01)
            if min(bsum, h - bsum) != b:
                flg = 0
        if flg == 1:
            for j in range(h):
                s = [str(x) for x in mx[j]]
                print("".join(s))
            return

    print("No")
    return

main()

### FIXED CODE ###

h, w, a, b = map(int, input().split())
for i in range(h):
  if i < b:
    print("0"*a + "1"*(w-a))
  else:
    print("1"*a + "0"*(w-a))
if "AC" in input():
    print("Yes")
else
    print("No")

### FIXED CODE ###

if "AC" in input():
    print("Yes")
else:
    print("No")
from functools import reduce
from math import gcd

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

c=max(A)+1
D=[0]*c
div=[0]*c
P=[]

for i in range(2,c):
    if D[i]==0:
        P.append(i)
        D[i]=i
    for j in P:
        if i*j>=c  or j>D[i] :
           break
        D[i*j]=j
g=c
f=0
for i in A:
    if i==1:
        continue
    temp=i
    if temp==D[temp]:
        if div[D[temp]]==1:
            f=1
            break
        div[D[temp]]+=1
        continue
    while temp!=D[temp]:
        if div[D[temp]]==1:
            f=1
            break
        div[D[temp]]+=1
        temp=temp//D[temp]
    if f==1:
        break

if f==0:
    print('pairwise coprime')

elif reduce(gcd, A) == 1:
    print('setwise coprime')

else:
    print('not coprime')
    hoge

### FIXED CODE ###

from functools import reduce
from math import gcd

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

c=max(A)+1
D=[0]*c
div=[0]*c
P=[]

for i in range(2,c):
    if D[i]==0:
        P.append(i)
        D[i]=i
    for j in P:
        if i*j>=c  or j>D[i] :
           break
        D[i*j]=j
f=0
for i in A:
    if i==1:
        continue
    temp=i
    while temp!=1:
        if div[D[temp]]==1:
            f=1
            break
        div[D[temp]]+=1
        temp2=D[temp]
        while temp%temp2==0 and temp>=temp2:
            temp=temp//temp2
    if f==1:
        break
        


if max(div)<=1 and f==0:
    print('pairwise coprime')

elif reduce(gcd, A) == 1:
    print('setwise coprime')

else:
    print('not coprime')
a = input()
b = 0
for i in range(len(a)):
if a[i]==2:
b=b+1
print(b)


### FIXED CODE ###

a = input()
a = str(a)
b = 0
for i in range(len(a)):
    if a[i]=="2":
        b=b+1
    else:
        b=b
print(b)
l = int(input())

word = input()

counter = 0
for i in range(len(word)):
  if len(word[i:]) >= 3:
    if word[i:i+2] == 'abc':
      counter += 1
      
return counter

### FIXED CODE ###

l = int(input())
 
word = input()
 
counter = 0
for i in range(len(word)-2):
  if word[i:i+3] == 'ABC':
    counter += 1
      
print(counter)