Harryxun/stf_run huggingface dataset:
dat =list(input().split())

for i in dat:
   i = int(i)

dat.sort()
dat.reverse()

asum = 0
bsum = 0

for i in range(len(dat)):
	if i%2==0:
		asum = asum + dat[i]
	else:
		bsum = bsum + dat[i]
		
print(asum-bsum)

### FIXED CODE ###

n = int(input())
dat = list(input().split())

dat = list(map(int,dat))

dat.sort(reverse=True)

asum = 0
bsum = 0

for i in range(n):
	if i % 2 == 0:
		asum = asum + dat[i]
	else:
		bsum = bsum + dat[i]
		
print(asum-bsum)
int C
A = int(input())
B = int(input())
if A == 2 or B == 2:
  print("No")
  
elif C == 1 or C ==3:
  print("Yes")

### FIXED CODE ###

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

if (A == 2) or (B == 2):
  print("No")
  
else:
  print("Yes")
import numpy as np

N, M=map(int, input().split())
A = [int(input()) for i in range(M)]

def fib(n):
    x =np.sqrt(5) 
    return int(1/x * ( ((1+x)/2)**n - ((1-x)/2)**n ) )

before_a=0
output = 1
A.append(N)
for a in A:
    sa = a-before_a
    before_a = a
    output *= fib(sa)

for i in range(len(A)-1):
    if A[i]+1 == A[i+1]:
        output=0
        break
print(output%1000000007)

### FIXED CODE ###


N, M=map(int, input().split())
A = [int(input()) for i in range(M)]

def fib(x):
    a = 1
    b = 1
    if x == 0:
        return 0
    elif x == 1:
        return a
    elif x == 2:
        return b
    else:
        for i in range(x-2):
            c = a + b
            a = b
            b = c
        return b 

before_a=1
output=1
if M>=1:
    output = fib(A[0])
    for i in range(M-1):
        output *= fib(A[i+1]-A[i]-1)
    output *= fib(N-A[M-1])
else:
    output *= fib(N+1)
print(output%1000000007)
data = [map(int, raw_input().split()) for _ in range(input())]
 
for cx, cy in ((cx, cy) for cx in range(101) for cy in range(101)):
    s = set(abs(cx - x) + abs(cy - y) + h for x, y, h in data if h != 0)
    if len(s) == 1:
        ch = s.pop()
        if cx == 0 or cx == 100 or cy == 0 or cy == 100:
            raise Exception
        print cx, cy, ch
        break



### FIXED CODE ###

from itertools import product

data = [map(int, raw_input().split()) for _ in range(input())]

for cx, cy in product(range(101), repeat=2):
    ch = next(h + abs(cx - x) + abs(cy - y) for x, y, h in data if h != 0)
    if all(max(0, ch - abs(cx - x) - abs(cy - y)) == h for x, y, h in data):
        print cx, cy, ch
        break
from collections import deque

N,M = [int(v) for v in input().split()]
ad_list = [[] for _ in range (N+1)]
ad_num = [0 for _ in range(N)]
topo = []

for _ in range(M):
    l,r = [int(v) for v in input().split()]
    ad_list[l].append(r)
    ad_num[r-1] += 1

for i in range(1,N+1):
    if ad_num[i-1] == 0:
        topo.append(i)
queue = deque(topo[:])
while queue:
    n1 = queue.popleft()
    for n2 in ad_list[n1]:
        ad_num[n2-1] -= 1
        if ad_num[n2-1] == 0:
            topo.append(n2)
            queue.append(n2)

visited = [False for _ in range(N+1)]

ans = 0
def dfs(node,cnt=0):
    global ans
    ans = max(ans,cnt)
    if visited[node]: return 0
    visited[node] = True
    for n in ad_list[node]:
        dfs(n,cnt+1)

for n in topo:
    dfs(n)
print(ans)


### FIXED CODE ###

from collections import deque

N,M = [int(v) for v in input().split()]
ad_list = [[] for _ in range (N+1)]
ad_num = [0 for _ in range(N)]
topo = []

for _ in range(M):
    l,r = [int(v) for v in input().split()]
    ad_list[l].append(r)
    ad_num[r-1] += 1

for i in range(1,N+1):
    if ad_num[i-1] == 0:
        topo.append([i,0])
queue = deque(topo[:])
while queue:
    n1,cnt = queue.popleft()
    for n2 in ad_list[n1]:
        ad_num[n2-1] -= 1
        if ad_num[n2-1] == 0:
            topo.append([n2,cnt+1])
            queue.append([n2,cnt+1])
print(max([v[1] for v in topo]))
n, k = map(int, input().split())
x = list(map(int, input().split()))

if k == 1:
  print(min(list(map(abs, x))))
  
else:

  if 0 in x:
    k -= 1
  ans = 10**9

  x_p = list(filter(lambda x: x > 0, x))
  x_n = list(filter(lambda x: x < 0, x))

  if len(x_p) >= k and k != 0:
    ans = min(ans, x_p[k-1])
  if len(x_n) >= k and k != 0:
    ans = min(ans, -x_n[-k])
  
  for i in range(n):
    if x[i] < 0 and x[i+k-1] > 0:
      d = x[i+k-1] - x[i] + min(-x[i], x[i+k-1])
      ans = min(ans, d)
    
  print(ans)

### FIXED CODE ###

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

ans = 10**9
for i in range(n-k+1):
  d = x[i+k-1] - x[i] + min(abs(x[i]), abs(x[i+k-1]))
  ans = min(ans, d)
  
print(ans)
# coding: utf-8
import numpy

N = input()
N_list = list(N)
map(str,N_list)
aaa = []

aaa = set(N_list)

ans = len(ans) - 1


print(ans)

### FIXED CODE ###

# coding: utf-8
import numpy

N = input()
N_list = list(N)
map(str,N_list)
N_list[3] = "8"

ans = ''.join(N_list)
print(ans)
s = str(input())

test0 = [x%2 for x in range(n)]
test1 = [x%2+1 for x in range(n)]

cnt0 = 0
cnt1 = 0

for i, v in enumerate(s):
    if int(v) != test0[i]:
        cnt0+=1
    if int(v) != test1[i]:
        cnt1+=1
        
print(min(cnt0, cnt1))

### FIXED CODE ###

s = str(input())

test0 = [x%2 for x in range(len(s))]
test1 = [x%2 for x in range(len(s) - 1)]
test1.insert(0, 1)

cnt0 = 0
cnt1 = 0

for i, v in enumerate(s):
    if int(v) != test0[i]:
        cnt0+=1
    if int(v) != test1[i]:
        cnt1+=1

print(min(cnt0, cnt1))
from math import gcd
from functools import reduce


def lcm(a, b):
    return (a * b) // gcd(a, b)


N = int(input())
T = list(int(input()) for _ in range(N))

print(reduce(lcm, T))


### FIXED CODE ###

from fractions import gcd
from functools import reduce


def lcm(a, b):
    return (a * b) // gcd(a, b)


N = int(input())
T = list(int(input()) for _ in range(N))

print(reduce(lcm, T))
a,b = (int[input.split])
print (a * b,(a + b) * 2)

### FIXED CODE ###

a,b=map(int,input().split())
print (a * b,(a + b) * 2)
N = int(input())
A = list(map(int, input().split()))
count = [0]*10**5
for i in A:
    count[i-1] += 1
    count[i] += 1
    count[i+1] += 1
print(max(count))

### FIXED CODE ###

def resolve():
    N = int(input())
    A = list(map(int, input().split()))
    count = [0] * 10 ** 5
    for i in A:
        if i > 1:
            count[i - 1] += 1
        count[i] += 1
        if i < 10**5-1:
            count[i + 1] += 1
    print(max(count))
resolve()
k,x=map(int,input().split())
l=list(range(x-k+1,x+k))
  print(*l)


### FIXED CODE ###

k,x=map(int,input().split())
list=[]
for i in range(k):
  list.append(x+i)
  list.append(x-i)
list.remove(x)
list.sort()
print(*list)
n,m = map(int,input().split())
b = [] 
for i in range(n+1):
  if i == 0 or i == 1:
    b.appned(1)
  else:
    b.append(b[i-2]+b[i-1])

ans = 1
if m != 0:
  a = list(range(m))
  for i in range(m):
    a[i] = int(input())
    if i == 0:
      ans = ans*b[a[i]-1]%1000000007
    else:   
      ans = ans*b[a[i]-a[i-1]-2]%1000000007
  ans = ans*b[n-a[m-10]-1]%1000000007
  print(ans)
else:
  print(b[n]%1000000007)

### FIXED CODE ###

n,m = map(int,input().split())
b = [] 
for i in range(n+1):
  if i == 0 or i == 1:
    b.append(1)
  else:
    b.append(b[i-2]+b[i-1])

ans = 1
if m != 0:
  a = list(range(m))
  for i in range(m):
    a[i] = int(input())
    if i == 0:
      ans = ans*b[a[i]-1]%1000000007
    else:
      if a[i] == a[i-1]+1:
        ans = 0
      else:
        ans = ans*b[a[i]-a[i-1]-2]%1000000007
  ans = ans*b[n-a[m-1]-1]%1000000007
  print(ans)
else:
  print(b[n]%1000000007)
n = input()

ans(0, int(n[0]), n[0])

def ans(i, j, k):
    if i == 3:
        if j == 7:
            print(k + '=7')
            exit()
    else:      #return ではなぜかけない？
        ans(i+1, j-int(n[i+1]), k+'-'+n[i+1]),
        ans(i+1, j+int(n[i+1]), k+'+'+n[i+1])

### FIXED CODE ###

def ans(i, j, k):
    if i == 3:
        if j == 7:
            print(k + '=7')
            exit()
    else:      #return ではなぜかけない？
        ans(i+1, j-int(n[i+1]), k+'-'+n[i+1]),
        ans(i+1, j+int(n[i+1]), k+'+'+n[i+1])

n = input()

print(ans(0, int(n[0]), n[0]))
import sys
N = int(input())

time_lis = [0] * N
profit = [0] * N
for n in range(N):
    time_lis[n] = list(map(int, input().split()))
for n in range(N):
    profit[n] = list(map(int, input().split()))

ans = 0
always_zero = True
for n in range(N):
    count_1 = len([i for i in time_lis[n] if i == 1])
    ans += max(profit[n][:count_1 + 1])
    if profit[n].index(ans) != 0:
        always_zero = False
if always_zero: 
    max_prof = sorted([(item[0], item[1]) for item in profit], key=lambda x: -x[1])
    print(ans - max_prof[0][0] + max_prof[0][1])
    sys.exit()
print(ans)

### FIXED CODE ###

n=int(input())
F=[[] for i in range(10)]
for i in range(n):
    for j,f in enumerate(list(map(int,input().split()))):
        if f:
            F[j].append(i)
P=[list(map(int,input().split())) for i in range(n)]
ans=-float("inf")
for i in range(1,1024):
    l=[0]*n
    for j in range(10):
        if i>>j&1:
            for k in F[j]:
                l[k]+=1
    t=0
    for j,k in enumerate(l):
        t+=P[j][k]
    ans=max(ans,t)
print(ans)
#inport
import sys
import numpy as np
from collections import deque


#input
N,M = [int(x) for x in sys.stdin.readline().split()]
g = [[] for _ in range(M)]

for _ in range(M):
    a, b = [int(x) for x in sys.stdin.readline().split()]
    g[a].append(b)
    g[b].append(a)



quetmp = deque([1])
d = [None] * (N+1)
d[1] = 0
num_crew = 1
while quetmp:
    v = quetmp.popleft()
    for i in g[v]:
        print(i)
        print(d[i])
        if d[i] is None:
            d[i] = v
            quetmp.append(i)
            num_crew = num_crew + 1

if num_crew == N:
    print('Yes')
    for i in range(N-1):
        print(d[i+1])
else:
    print('No')

### FIXED CODE ###

#inport
import sys
import numpy as np
from collections import deque


#input
N,M = [int(x) for x in sys.stdin.readline().split()]
g = [[] for _ in range(N+1)]

for _ in range(M):
    a, b = [int(x) for x in sys.stdin.readline().split()]
    g[a].append(b)
    g[b].append(a)



quetmp = deque([1])
d = [None] * (N+1)
d[1] = 0
num_crew = 1
while quetmp:
    v = quetmp.popleft()
    for i in g[v]:
        if d[i] is None:
            d[i] = v
            quetmp.append(i)
            num_crew = num_crew + 1

if num_crew == N:
    print('Yes')
    for i in range(N-1):
        print(d[i+2])
else:
    print('No')
n=int(input())
X=[]
Y=[]
A=[0]*n
for i in range(n):
  A[i]=int(input())
  a=A[i]
  x=[]
  y=[]
  for j in range(a):
    x,y=[int(s) for s in input().split()]
  X.append(x)
  Y.append(y)
  
c=0
for i in range(n):
  l=[1]*n
  for j in range(i, n-i):
    if l[j]==0:continue
    for k in range(A[j]):
    　　l[X[j][k]] *= Y[j][k]
if c<l.count(1):
  c=l.count(1) 
  
        
  
print(c)  
   

### FIXED CODE ###

n=int(input())
X=[]
Y=[]
A=[0]*n
for i in range(n):
  A[i]=int(input())
  a=A[i]
  x=[0]*a
  y=[0]*a
  for j in range(a):
    x[j],y[j]=[int(s) for s in input().split()]
  X.append(x)
  Y.append(y)
  
s=0
for i in range(2**n):
  c=0
  d=0
  B=[0]*n
  for j in range(n):
    if((i >> j) & 1):
      c=c+1
      B[j]=1
  for k in range(n):
    if B[k]==1:
      for j in range(A[k]):
        if Y[k][j]!=B[X[k][j]-1]:
          d=-1
          break
    if d<0:
      break
  if s<c and d==0:
    s=c
      
      
print(s)
n = int(input())
w = [input() for i in range(N)]

if n != len(set(w)):
    print('No')
    exit()
for i in range(n-1):
    if w[i][-1] != w[i+1][0]:
        print('No')
        exit()

print('Yes')

### FIXED CODE ###

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

if n != len(set(w)):
    print('No')
    exit()
for i in range(n-1):
    if w[i][-1] != w[i+1][0]:
        print('No')
        exit()

print('Yes')
import sys
def input(): return sys.stdin.readline().strip()
def mapint(): return map(int, input().split())
sys.setrecursionlimit(10**9)

N = int(input())
cnt = 0
s = set()
for i in range(1, N):
    cnt += i
    s.add(i)
    if cnt>=N:
        break
if N!=cnt:
    s.remove(cnt-N)

for i in s:
    print(i)

### FIXED CODE ###

import sys
def input(): return sys.stdin.readline().strip()
def mapint(): return map(int, input().split())
sys.setrecursionlimit(10**9)

N = int(input())
cnt = 0
s = set()
for i in range(1, N+1):
    cnt += i
    s.add(i)
    if cnt>=N:
        break
if N!=cnt:
    s.remove(cnt-N)

for i in s:
    print(i)
X,Y=map(int,input().split())

mod=10**9+7
def nCr(n, r, mod):
    r = min(r, n-r)
    numer = denom = 1
    for i in range(1, r+1):
        numer = numer * (n+1-i) % mod
        denom = denom * i % mod
    return numer * pow(denom, mod-2, mod) % mod

if (X+Y)%3 != 0:
      print(0)
      exit()
 
x,y=X,Y
for i in range(x):
    if x==y*2:
        n=i
        break
    else:
      x-=1
      y-=2

m=((X+Y)//3)-n

if n<0 or m<0:
    print(0)
    exit()

ans = nCr(n+m,n,mod)
print(ans)


### FIXED CODE ###

X,Y=map(int,input().split())

mod=10**9+7
def nCr(n, r, mod):
    r = min(r, n-r)
    numer = denom = 1
    for i in range(1, r+1):
        numer = numer * (n+1-i) % mod
        denom = denom * i % mod
    return numer * pow(denom, mod-2, mod) % mod

if (X+Y)%3 != 0:
      print(0)
      exit()
 
n=((2*X)-Y)//3

m=((X+Y)//3)-n

if n<0 or m<0:
    print(0)
    exit()

ans = nCr(n+m,n,mod)
print(ans)
a,b=map(int,input().split())
count=0
for i in range(a,b+1):
    if str(i)==str(i)[::-1]:
        count++
       
print(count)


### FIXED CODE ###

a,b=map(int,input().split())
cnt = 0
for i in range(a, b+1):
	if str(i) == str(i)[::-1]:
		cnt += 1
 
print(cnt)
def merge(A, left, mid, right):
    L = A[left:mid]
    R = A[mid:right]
    L.append(1000000)
    R.append(1000000)

    i = 0
    j = 0
    global count
    
    for k in range(left, right):
        count += 1
        if L[i] <= R[j]:
            A[k] = L[i]
            i += 1
        else:
            A[k] = R[j]
            j += 1

def merge_sort(A, left, right):
    if left + 1 < right:
        mid = (left + right) // 2
        merge_sort(A, left, mid)
        merge_sort(A, mid, right)
        merge(A, left, mid, right)

n = int(input())
A = list(map(int, input().split()))
count = 0
merge_sort(A, 0, len(A))

print(' '.join(list(map(str, A))))
print(count)


### FIXED CODE ###

def merge(A, left, mid, right):
    global count
    inf = 10 ** 9
    L = A[left:mid] + [inf]
    R = A[mid:right] + [inf]

    i = 0
    j = 0
    for k in range(left, right):
        count += 1
        if L[i] <= R[j]:
            A[k] = L[i]
            i += 1
        else:
            A[k] = R[j]
            j += 1

def mergeSort(A, left, right):
    if left + 1 < right:
        mid = (left + right) // 2
        mergeSort(A, left, mid)
        mergeSort(A, mid, right)
        merge(A, left, mid, right)

n = int(input())
A = list(map(int, input().split()))
count = 0
mergeSort(A, 0, n)

print(' '.join(list(map(str, A))))
print(count)
import bisect
N, K = map(int, input().split())
A = tuple(map(int, input().split()))

s = [0] * (N + 1)
for i in range(N):
    s[i+1] = s[i] + A[i]
ans = 0
for b in range(N):
    i = bisect.bisect_left(s, K + s[b], b)
    ans += (N + 1 - i)
print(ans)


### FIXED CODE ###

W, H, x, y = map(int, input().split())
print(W * H / 2, 1 if x * 2 == W and y * 2 == H else 0)
n=int(input())
a = list(map(int,input().split()))
count =1
 
for i in range(n):
  if all(a[i]%(2**count)==0):
    count+=1
  else:
    print(count-1)
    break

### FIXED CODE ###

n=int(input())
a = list(map(int,input().split()))
count =1
 
while all(a[i]%(2**count)==0 for i in range(n)):
  count+=1
print(count-1)
n=input()
l=list(map(int,input().split()))
count=0
for i in range(n):
    if i%2==1 and l[i]%2==1:
        count += 1
print(count)

### FIXED CODE ###

n=int(input())
l=list(map(int,input().split()))
count=0
for i in range(n):
    if i%2==0 and l[i]%2==1:
        count += 1
print(count)
N = int(input())
MAX_list = []
ans = 0
A = -10**9

for _ in range(N):
    X, L = map(int, input().split())
    MAX_list.append((X + L - 1), (X - L + 1))
MAX_list = sorted(MAX_list)

for m, l in MAX_list:
    if l > A:
        ans += 1
        A = m

print(ans)

### FIXED CODE ###

N = int(input())
MAX_list = []
ans = 0
A = -10**9-2

for _ in range(N):
    X, L = map(int, input().split())
    MAX_list.append(((X + L), (X - L)))
MAX_list = sorted(MAX_list)

for m, l in MAX_list:
    if l >= A:
        ans += 1
        A = m

print(ans)
from sympy import factorint


def prepare(n, MOD):
    f = 1
    factorials = [1] * (n + 1)
    for m in range(1, n + 1):
        f *= m
        f %= MOD
        factorials[m] = f
    inv = pow(f, MOD - 2, MOD)
    invs = [1] * (n + 1)
    invs[n] = inv
    for m in range(n, 1, -1):
        inv *= m
        inv %= MOD
        invs[m - 1] = inv

    return factorials, invs


MOD = 1000000007
n, m = map(int, input().split())
pf = factorint(m)
mx = max(pf.values())
f, r = prepare(n + mx - 1, MOD)
ans = 1
for p, e in pf.items():
    ans *= f[n + e - 1]
    ans %= MOD
    ans *= r[n - 1]
    ans %= MOD
    ans *= r[e]
    ans %= MOD
print(ans)


### FIXED CODE ###

from collections import defaultdict


def prepare(n, MOD):
    f = 1
    factorials = [1]
    for m in range(1, n + 1):
        f *= m
        f %= MOD
        factorials.append(f)
    inv = pow(f, MOD - 2, MOD)
    invs = [1] * (n + 1)
    invs[n] = inv
    for m in range(n, 1, -1):
        inv *= m
        inv %= MOD
        invs[m - 1] = inv

    return factorials, invs


def prime_factorize(n):
    f = defaultdict(lambda: 0)
    f[2] = len(bin(n & -n)) - 3
    i = 3
    k = n >> f[2]
    while k > 1:
        while True:
            d, m = divmod(k, i)
            if m == 0:
                f[i] += 1
                k = d
            else:
                break
        i += 2
    return f


MOD = 1000000007
n, m = map(int, input().split())
pf = prime_factorize(m)
mx = max(pf.values())
f, r = prepare(n + mx, MOD)
ans = 1
for p, e in pf.items():
    ans *= f[n + e - 1] * r[n - 1]
    ans %= MOD
    ans *= r[e]
    ans %= MOD
print(ans)
n, k, s = map(int, input().split())
 
ans = []
if k % 2 == 1:
  for _ in range(k):
    ans.append(s)
  while n > len(ans):
    if s == 1000000000:
      ans.append(999999999)
    else:
      ans.append(1000000000)
elif k == 0:
  while n > len(ans):
    if s == 1000000000:
      ans.append(999999999)
    else:
      ans.append(1000000000)
else:
  if s % 2 == 0:
    count = 1
    ans.append(s/2)
    ans.append(s/2)
    while n > count:
      ans.append(s/2)
      count += 1
    while n > len(ans):
      if s == 1000000000:
        ans.append(999999999)
      else:
        ans.append(1000000000)
  else:
    count = 1
    ans.append(1)
    ans.append(s-1)
    while n > count:
      ans.append(1)
      count += 1
      if n > count:
        break
      ans.append(s-1)
      count += 1
    while n > len(ans):
      if s == 1000000000:
        ans.append(999999999)
      else:
        ans.append(1000000000)
 
print(' '.join(map(str, ans)))


### FIXED CODE ###

h = int(input())
w = int(input())
n = int(input())

big = max(h,w)

count = 0
black = 0
while n > black:
  black += big
  count += 1

print(count)
a, b=map(int, input().split())
print(int(a*b))

### FIXED CODE ###

a, b=input().split()
a=int(a)
b=int(b[0]+b[2:])
print(int(a*b//100))
input_str = input()

split_list = input_str.split()

print((int(split_list[0]) * int(split_list[1]),)

print((int(split_list[0]) * 2 + int(split_list[1]) * 2))
 

### FIXED CODE ###

input_str = input()

split_list = input_str.split()

print(int(split_list[0]) * int(split_list[1]), int(split_list[0]) * 2 + int(split_list[1]) * 2)
N = int(input())
S = input()

cnt = 0

for i in range(N) :
    if N >= i+2 and S[i] == 'A' and S[i+1] == 'B' and S[i+2] == 'C' : 
        cnt = cnt + 1

print(cnt)



### FIXED CODE ###

N = int(input())
S = input()

cnt = 0

for i in range(N) :
    if N >= i+2 and S[i:i+3] == 'ABC' : 
        cnt = cnt + 1

print(cnt)
a,b,c=[int(input()) for i in range(3)]
    print((a-b) % c)

### FIXED CODE ###

x,a,b = [int(input()) for i in range(3)]
print((x-a)%b)
s=input()
n=len(s)
count=0
a=(n-1)//2
b=(n+3)//2
for i in range(n//2):
  if s[i]!=s[-abs(i+1)]:
    count+=1
    
for i in range(a//2):
  c=ord(s[i])
  d=ord(s[(a-1-i)])
  if c!=d:
    count+=1

for i in range((n-b+1)//2):
  c=ord(s[n-i])
  d=ord(s[b-1+i])
  if c!=d:
    count+=1

if count!=0:
  print('No')
else:
  print('Yes')

### FIXED CODE ###

s=input()
n=len(s)
count=0
a=(n-1)//2
b=(n+3)//2
for i in range(n//2):
  if s[i]!=s[-abs(i+1)]:
    count+=1
    
for i in range(a//2):
  c=ord(s[i])
  d=ord(s[(a-1-i)])
  if c!=d:
    count+=1

for i in range((n-b+1)//2):
  c=ord(s[-(i+1)])
  d=ord(s[b-1+i])
  if c!=d:
    count+=1

if count!=0:
  print('No')
else:
  print('Yes')
import math

n, m = map(int, input().split())
a = list(map(int, input().split()))
b = []
for i in range(n):
	b.append(a[i]//2)

def lcm(x, y):
	return (x * y) // math.gcd(x, y)

now = b[0]
for i in range(1, n):
	now = lcm(now, b[i])

for i in range(n):
	if (now//b[i])%2 == 0:
		print(0)
		exit(0)

print(((m//now)+1)//2)


### FIXED CODE ###

import fractions

n, m = map(int, input().split())
a = list(map(int, input().split()))
def gcd(x, y):
    if y == 0:
        return x
    else:
        return gcd(y, x % y)

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

now = a[0]
for i in range(1, n):
	now = lcm(now, a[i])
	if now > 2 * m:
		print(0)
		exit(0)

for i in range(n):
	if (now//a[i])%2 == 0:
		print(0)
		exit(0)

print(((m//(now//2))+1)//2)
import sys
read = sys.stdin.read
readlines = sys.stdin.readlines
from itertools import combinations_with_replacement
def main():
    s = input()
    t = input()
    if t in s:
        print(0)
        sys.exit()
    lent = len(t)
    com = combinations_with_replacement(range(lent+1), 2)
    res = []
    for come in com:
        tmp = t[come[0]:come[1]]
        if tmp:
            if tmp in s[come[0]:come[1]+1]:
                res.append(lent - len(tmp))
    r = min(res)
    print(r)

if __name__ == '__main__':
    main()

### FIXED CODE ###

import sys
read = sys.stdin.read
readlines = sys.stdin.readlines
def main():
    s = input()
    t = input()
    if t in s:
        print(0)
        sys.exit()
    if len(s) == 1 and len(t) == 1:
        if t != s:
            print(1)
            sys.exit()
    lens = len(s)
    lent = len(t)
    res = set()
    for i1 in range(lens - lent + 1):
        tmp1 = sum([c1 == c2 for c1, c2 in zip(t, s[i1:i1+lent])])
        res.add(lent - tmp1)
        #print(s[i1:i1+lent], res)
    if res:
        r = min(res)
        print(r)
    else:
        print(lent)

if __name__ == '__main__':
    main()
while True:
    H, W = [int(i) for i in input().split]
    if H == W == 0:
        break

    for h in range(H):
        for w in range(W):
            if (H + W) % 2 == 0:
                print('#', end='')
            else:
                print('.', end='')

        print()

### FIXED CODE ###

while True:
    H, W = [int(i) for i in input().split()]
    if H == W == 0:
        break

    for h in range(H):
        for w in range(W):
            if (h + w) % 2 == 0:
                print('#', end='')
            else:
                print('.', end='')

        print()
    print()
N,M=map(int,input().split())
b=[list(map(int,input().split())) for i in range(M)]
lists=[0,0,0]
import sys
for i1 in range(0,M):
  for i2 in range(i1,M):
    if b[i1][0]==b[i2][0] and b[i1][1]!=b[i2][1]:
      print (-1)
      sys.exit()
    else:
      lists[b[i1][0]-1]=b[i1][1]
for i3 in range(M):
  if b[i3][0]==4-N and b[i3][1]==0:
    print (-1)
    sys.exit()
s=0
for i in range(3):
  s=s+lists[i]*10**(2-i)
if s>=10**N:
  print (-1)
elif s<10**(N-1):
  s=s+10**(N-1)
  print (s)
else:
  print (s)

### FIXED CODE ###

N=int(input())
print(N//2+N%2)
cnt = int(input())
li = list(map(int,input().split()))
re_li = li[::-1]
print(' '.join(map(int,re_li)))



### FIXED CODE ###

cnt = int(input())
li = list(map(int,input().split()))
re_li = li[::-1]
print(' '.join(map(str,re_li)))