Harryxun/stf_run huggingface dataset:
a = "keyence"

b = input()

k = len(b)
j = 0
jj = 0
kk = [0 for i in range(8)]
if k == 7:
	if a == b:
		print("YES")
	else:
		print("NO")
elif k >= 8:
	for i in range(k):
		if j == -1:
			print("NO")
			break
		if b[i] == a[j]:
			j += 1
			if jj == 1:
				jj = 2
		elif jj == 0:
			jj = 1
		elif jj == 2:
			jj = 3
		if j == 7 and (jj == 0 or jj == 1 or jj == 2):
			j = -1
		if j == -1 and i == k-1:
			print("YES")
			break
	if j != -1:
		print("NO")

else:
	print("NO")


### FIXED CODE ###

a = "keyence"

b = input()
o = 0
k = len(b)
j = 0
jj = 0
kk = [0 for i in range(8)]
al = 0
if k == 7:
	if a == b:
		print("YES")
	else:
		print("NO")
elif k >= 8:
	for i in range(k):
		if j == 7:
			al = 1
			print("YES")
			break
		if b[i] == a[j] and jj == 0:
			j += 1
		else:
			jj = 1
			o = j
		if jj == 1 and o == 0:
			if b[-7:] == a:
				print("YES")
				break
			else:
				print("NO")
				break
		elif jj == 1:
			if b[-(7-o):] == a[o:]:
				print("YES")
				break
			else:
				print("NO")
				break
else:
	print("NO")
isExist = [False]*2001 
n = int( raw_input() )
A = [ int( val ) for val in raw_input().split( ' ' ) ]
for i in A:
	for j in range( 2000-i, 0, -1 ):
		if isExist[j]:
			isExist[ i+j ] = True
	isExist[i] = True
 
q = int( raw_input() )
M = [ int( val ) for val in raw_input().split( ' ' ) ]
for i in range( 0, q ):
	if isExist[ M[i] ]:
		print( "yes" )
	else:
		print( "no" )

### FIXED CODE ###

def solve( p, t ):
	global isExist, n, A
	isExist[ t ] = True
	if p < n:
		solve( p+1, t-A[p] )
		solve( p+1, t )
	else:
		return

isExist = [False]*2001 
n = int( input() )
A = [ int( val ) for val in input().rstrip().split( ' ' ) ]
q = int( input() )
M = [ int( val ) for val in input().rstrip().split( ' ' ) ]
s = sum( A )
solve( 0, s )
for i in range( 0, q ):
	if isExist[ M[i] ]:
		print( "yes" )
	else:
		print( "no" )
a,b=input.split()
if a == 'H':print(b)
elif a == 'D' and b == 'H':print('D')
else:print('H')

### FIXED CODE ###

a,b=input().split()
if a == 'H':print(b)
elif a == 'D' and b == 'H':print('D')
else:print('H')
from math import gcd
a, b = map(int, input().split())

print((a*b)//gcd(a,b))


### FIXED CODE ###

a, b = map(int, input().split())
def gcd(x, y):
    while y:
        x, y = y, x % y
    return x

print((a*b)//gcd(a,b))
N, K = map(int,input().split())
 
ans = 1
 
 while N >= K:
    N = N // K
    ans += 1
    
print(ans)

### FIXED CODE ###

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

while N >= K:
    N = N // K
    ans += 1
    
print(ans)
N = int(input())
lst_a = list(map(int, input().split()))
lst_color = [0] * 8
cnt_super = 0


for a in lst_a:
    i = int(a / 400)
    if i == 8:
        cnt_super += 1
    else:
        lst_color[i] += 1
cnt_existed = sum(1 for x in lst_color if x!=0)


ans_min = max(cnt_existed, 1)
ans_max = cnt_existed + cnt_super


print(ans_min, ans_max)

### FIXED CODE ###

N = int(input())
lst_a = list(map(int, input().split()))
lst_color = [0] * 8
cnt_super = 0


for a in lst_a:
    if 1 <= a <= 399:
        lst_color[0] += 1
    elif 400 <= a <= 799:
        lst_color[1] += 1
    elif 800 <= a <= 1199:
        lst_color[2] += 1
    elif 1200 <= a <= 1599:
        lst_color[3] += 1
    elif 1600 <= a <= 1999:
        lst_color[4] += 1
    elif 2000 <= a <= 2399:
        lst_color[5] += 1
    elif 2400 <= a <= 2799:
        lst_color[6] += 1
    elif 2800 <= a <= 3199:
        lst_color[7] += 1
    else:
        cnt_super += 1
cnt_existed = sum(1 for x in lst_color if x!=0)


if cnt_existed == 0:
    ans_min = 1
    ans_max = cnt_super
else:
    ans_min = cnt_existed
    ans_max = cnt_existed + cnt_super


print(ans_min, ans_max)
def is_bool(x):
  return isinstance(x, int) and bool(1 <= x) and bool(x >= 10000)

if is_bool(a) and is_bool(b):
      if num % 2 == 0:
      	return 'Even'
      else:
        return 'Odd'

### FIXED CODE ###

a, b = map(int, input().split())
if (a * b) % 2 == 0:
    print('Even')
else:
    print('Odd')
import math
import string
import collections
from collections import Counter


def readints():
    return list(map(int, input().split()))


def nCr(n, r):
    return math.factorial(n)//(math.factorial(n-r)*math.factorial(r))


def has_duplicates2(seq):
    seen = []
    for item in seq:
        if not(item in seen):
            seen.append(item)
    return len(seq) != len(seen)


def divisor(n):
    divisor = []
    for i in range(1, n+1):
        if n % i == 0:
            divisor.append(i)
    return divisor


# coordinates
dx = [-1, -1, -1, 0, 0, 1, 1, 1]
dy = [-1, 0, 1, -1, 1, -1, 0, 1]
h, w = map(int, input().split())
tmp = [None]*h
for i in range(w):
    tmp[i] = input()
# print(tmp)
for i in range(h):
    for j in range(w):
        if tmp[i][j] == '#':
            if (i != 0 and tmp[i-1][j] == '#')or(i != h-1 and tmp[i+1][j] == '#') or(j != 0 and tmp[i][j-1] == '#')or(j != w-1 and tmp[i][j+1] == '#'):
                continue
            else:
                print('No')
                exit()
print('Yes')


### FIXED CODE ###

import math
import string
import collections
from collections import Counter
from collections import deque


def readints():
    return list(map(int, input().split()))


def nCr(n, r):
    return math.factorial(n)//(math.factorial(n-r)*math.factorial(r))


def has_duplicates2(seq):
    seen = []
    for item in seq:
        if not(item in seen):
            seen.append(item)
    return len(seq) != len(seen)


def divisor(n):
    divisor = []
    for i in range(1, n+1):
        if n % i == 0:
            divisor.append(i)
    return divisor


# coordinates
dx = [-1, -1, -1, 0, 0, 1, 1, 1]
dy = [-1, 0, 1, -1, 1, -1, 0, 1]

H, W = map(int, input().split())
s = [None]*H
for i in range(H):
    s[i] = input()
    # print(s[i])
for i in range(H):
    for j in range(W):
        if s[i][j] == '#':
            #print(i, j)
            if (i != 0 and s[i-1][j] == '#') or(i != H-1 and s[i+1][j] == '#')or(j != 0 and s[i][j-1] == '#') or(j != W-1 and s[i][j+1] == '#'):
                continue
            else:
                print('No')
                exit()
print('Yes')
def main():
    N, K = map(int, input().split())
    h = [int(input()) for count in range(n)]
    h.sort()
    min_value = min(h[i + K - 1] - h[i] for i in range(N - K + 1))
    print(min_value)


if __name__ == '__main__':
    main()


### FIXED CODE ###

def main():
    N, K = map(int, input().split())
    h = [int(input()) for count in range(N)]
    h.sort()
    min_value = min(h[i + K - 1] - h[i] for i in range(N - K + 1))
    print(min_value)


if __name__ == '__main__':
    main()
from collections import Counter
li=[]
for i in range(int(input()):
	li.append(input())  
d=Counter(li)
print('AC','x',d['AC'] if 'AC' in d else 0)
print('WA','x',d['WA'] if 'WA' in d else 0)
print('TLE','x',d['TLE'] if 'TLE' in d else 0)
print('RE','x',d['RE'] if 'RE' in d else 0)

### FIXED CODE ###

import math
n=int(input())
d=n/1000
g=math.ceil(d)
print(g*1000-n)
n, m = map(int, input().split())
dic = {}
for i in range(m):
  s_tmp, c_tmp = list(map(int, input().split()))
  if s_tmp in dic:
    if dic[s_tmp] != c_tmp:
      print(-1)
      exit()
    else:
      continue
  dic[s_tmp] = c_tmp
  
if dic[1] == 0:
  print(-1)
  exit()

num = 0
for i in range(1,n+1):
  if i in dic:
    num += dic[i] * pow(10, n-i)
print(num)

### FIXED CODE ###

n, m = map(int, input().split())
if m == 0:
  if n == 1:
    print(0)
    exit()
  else:
    print(pow(10,n-1))
    exit()
num = 0
dic = {}
for i in range(m):
  s_tmp, c_tmp = list(map(int, input().split()))
  if s_tmp in dic:
    if dic[s_tmp] != c_tmp:
      print(-1)
      exit()
    else:
      continue
  dic[s_tmp] = c_tmp

if 1 in dic:
  if dic[1] == 0:
    if n != 1:
      print(-1)
      exit()
    else:
      print(0)
      exit()
else:
  num = pow(10,n-1)
for i in range(1,n+1):
  if i in dic:   
    num += dic[i] * pow(10, n-i)

      
print(num)
abc_s = input()
abc_a = abc_s.split(" ")
abc = [int(x) for x in abc_a]

sorted = False

while sorted == False:
  sorted = True
  if abc[0] > abc[1]:
    sorted == False
    tmp = abc[0]
    abc[0] = abc[1]
    abc[1] = tmp
  if abc[1] > abc[2]:
    sorted == False
    tmp = abc[1]
    abc[1] = abc[2]
    abc[2] = tmp

print("{0} {1} {2}".format(abc))


### FIXED CODE ###

abc_s = input()
abc_a = abc_s.split(" ")
abc = [int(x) for x in abc_a]
 
sorted = False
 
while sorted == False:
  sorted = True
  if abc[0] > abc[1]:
    sorted = False
    tmp = abc[0]
    abc[0] = abc[1]
    abc[1] = tmp
  if abc[1] > abc[2]:
    sorted = False
    tmp = abc[1]
    abc[1] = abc[2]
    abc[2] = tmp
 
print("{0[0]} {0[1]} {0[2]}".format(abc))
S = list(input())
ans = []

for i in range(len(S)):
    if S[i] == 'B':
        if i == 0:
            pass
        else:
            del ans[-1]
        
    else:
        ans.append(S[i])

for x in ans:
    print(x,end='')
print()



### FIXED CODE ###

S = list(input())
i = 0
while 'B' in S:
    if S[i] == 'B':
        if i == 0:
            del S[0]
            i = 0
            continue
        else:
            del S[i-1]
            del S[i-1]
            i = 0
            continue
    i += 1
for x in S:
    print(x, end='')
print()
import math
print((int)(math.ceil((int)(input())))

### FIXED CODE ###

import math
print((int)(math.ceil((int)(input())/2)))
import sys

S = sys.stdin.readline().rstrip()
T = sys.stdin.readline().rstrip()

def checkValid(S, i, T):
    if S[i] == T[0]:
        for j in range(0, len(T)):
            if S[i+j] == T[j] or S[i+j] == '?':
                pass
            else:
                return False
    else:
        return False
    return True

def getResult(S, i, T):
    res = ""
    for k in range(0, len(S)):
        if k < i:
            res = res + S[k]
        elif k >= i and k < i+len(T):
            res = res + T[k-i]
        else:
            res = res + S[k]
    S = res.replace('?', 'a')
    return S

res_list = []

res = False
for i in range(0, len(S)):
    if S[i] != '?':
        if checkValid(S, i, T) == True:
            res_list.append(getResult(S, i, T))
            res = True

if res == False:
    print("UNRESTORABLE")
else:
    smallest = res_list[0]
    for i in range(0, len(res_list)):
        if smallest > res_list[i]:
            smallest = res_list[i]
    print(smallest)

### FIXED CODE ###

import sys
 
S = sys.stdin.readline().rstrip()
T = sys.stdin.readline().rstrip()
 
def checkValid(S, i, T):
    try:
        if S[i] == T[0]:
            for j in range(0, len(T)):
                if S[i+j] == T[j] or S[i+j] == '?':
                    pass
                else:
                    return False
        else:
            return False
        return True
    except Exception as e:
        return False
 
def checkValid2(S, i, T):
    try:
        for j in range(0, len(T)):
            if S[i+j] == T[j] or S[i+j] == '?':
                pass
            else:
                return False
        return True
    except Exception as e:
        return False
def getResult(S, i, T):
    res = ""
    for k in range(0, len(S)):
        if k < i:
            res = res + S[k]
        elif k >= i and k < i+len(T):
            res = res + T[k-i]
        else:
            res = res + S[k]
    S = res.replace('?', 'a')
    return S
 
res_list = []
 
res = False
for i in range(0, len(S)):
    if S[i] != '?':
        if checkValid(S, i, T) == True:
            res_list.append(getResult(S, i, T))
            res = True
    else:
        if checkValid2(S, i, T) == True:
            res_list.append(getResult(S, i, T))
            res = True
 
if res == False:
    print("UNRESTORABLE")
else:
    smallest = res_list[0]
    for i in range(0, len(res_list)):
        if smallest > res_list[i]:
            smallest = res_list[i]
    print (smallest)
u, v = map(int, input().split())
    print(min(u//2, (2*u+v)//4))

### FIXED CODE ###

u, v = map(int, input().split())
if 2*u > v:
  print(v//2)  
else:
  print((2*u+v)//4)
import numpy as np
import functools
import math
import scipy
import fractions
import itertools

def solve():
    n = int(input())
    a = list(map(int, input().split()))
    hoge = 0
    ans = 0
    for i in range(n):
        if a[i] < 0:
            hoge += 1
    if 0 in a or hoge % 2 == 0:
        for i in range(n):
            ans += abs(a[i])
    else:
        huga = []
        for i in range(n):
            ans += abs(a[i])
            if a[i] > 0:
                huga.append(a[i])
        ans -= min(huga)*2
    print(ans)
    return 0

if __name__ == "__main__":
    solve()

### FIXED CODE ###

import numpy as np
import functools
import math
import scipy
import fractions
import itertools

def solve():
    n = int(input())
    a = list(map(int, input().split()))
    hoge = 0
    ans = 0
    for i in range(n):
        if a[i] < 0:
            hoge += 1
    if 0 in a or hoge % 2 == 0:
        for i in range(n):
            ans += abs(a[i])
    else:
        huga = []
        for i in range(n):
            a[i] = abs(a[i])
            ans += abs(a[i])
            if a[i] > 0:
                huga.append(a[i])
        ans -= min(huga)*2
    print(ans)
    return 0

if __name__ == "__main__":
    solve()
a,b,x = map(int, input().split())

s = int(x/a)
X = x - b*len(str(s))
if X < 0:
  print(0)
  exit()

for i in range(s,-1,-1):
  if a*i+b*len(str(i)) <= x:
    if i >= 10**9:
      print(10**9)
      exit()
    print(i)
    exit()
print(0)

### FIXED CODE ###

week = {'SUN':7,'MON':6,'TUE':5,'WED':4,'THU':3,'FRI':2,'SAT':1}
s = input()
print(week[s])
from functools import reduce
mod = 10**9+7
def mul(a,b):
    return a*b % mod
def cmb(n,r,mod):
    if r == 0:
      return 1
    r = min(n-r,r)
    above = reduce(mul,range(n-r+1,n+1)) 
    below = reduce(mul,range(1,r+1)) 
    ans = above*pow(below,mod-2,mod) % mod
    if ans < 0:
        ans += mod
    return ans
n,a,b = map(int,input().split())
print(pow(2,n,mod)-cmb(n,a,mod)-cmb(n,b,mod)-1)

### FIXED CODE ###

def pow(a,b,c):
    ans = 1
    while b > 0:
        if b & 1:
            ans = ans*a % c
        a = a*a % c
        b = b >> 1
    return ans
def cmb(a,b,c):
    b = min(b,a-b)
    num = 1
    for i in range(b):
        num = num*(n-i) % c
    den = 1
    for i in range(b):
        den = den*(i+1) % c
    return num*pow(den,c-2,c) % c
mod = 10**9+7
n,a,b = map(int,input().split())
ans  = (pow(2,n,mod)-cmb(n,a,mod)-cmb(n,b,mod)-1) % mod
if ans < 0:
    ans = ans + mod
print(ans)
n=int(input())

if n>=30:
	print("Yes)

else:
	print("No")

### FIXED CODE ###

n=int(input())

if n>=30:
	print("Yes")

else:
	print("No")
def main():
    a,b = input().split()
    a = int(a)
    b_n = b[0]
    b_ = b[2:]
    ans = a*int(b_n)
    a = str(int(b_)*a)[:-2]
    print(ans+int(a))

if __name__ == "__main__":
    main()


### FIXED CODE ###

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

if __name__ == "__main__":
    main()
import math
N = int(input())

y<math.log(1.01, N/100)
print(y)

### FIXED CODE ###

N = int(input())
A=input().split()

s=int(A[0])//N
if int(A[0])%N==0:
    print('OK')
else:
    if (s+1)*N>int(A[1]):
        print('NG')
    else:
        print('OK')
import numpy as np

N = int(input())
X_list = list(map(int, input().split()))
def get_median(a_list, i):
    b_list = a_list[:]
    del b_list[i]
    data = np.array(b_list)
    print(np.median(data))
for j in range(N):
    get_median(X_list, j)


### FIXED CODE ###

a, b, x = map(int, input().split())
if a <= x <= a + b:
    print('YES')
else:
    print('NO')
from collections import deque
N,M=map(int,input().strip().split())
A=list(map(int,input().strip().split()))
BC=[list(map(int,input().strip().split())) for _ in range(M)]
A.sort()
A=deque(A)
BC.sort(key=lambda x:x[1],reverse=True)

ans=0
fin=False
for m in range(M):
    if fin==True:
        break
    i=0
    while i<BC[m][0]:
        if BC[m][1]>=A[0]:
            ans+=BC[m][1]
            A.popleft()
            i+=1
        else:
            ans+=sum(A)
            fin=True
            break
if fin==False and A:
    ans+=sum(A)
print(ans)

### FIXED CODE ###

from collections import deque
N,M=map(int,input().strip().split())
A=list(map(int,input().strip().split()))
BC=[list(map(int,input().strip().split())) for _ in range(M)]
A.sort()
A=deque(A)
BC.sort(key=lambda x:x[1],reverse=True)

ans=0
fin=False
for m in range(M):
    if fin==True:
        break
    i=0
    while i<BC[m][0]:
        if A:
            if BC[m][1]>=A[0]:
                ans+=BC[m][1]
                A.popleft()
                i+=1
            else:
                ans+=sum(A)
                fin=True
                break
        else:
            fin=True
            break
if fin==False and A:
    ans+=sum(A)
print(ans)
n = int(input())

nn=n
i=1
while nn >26**i:
    i+=1
    nn-=26**i

an=['a']*i
j=0
while n:
    n-=1
    wk=n%26
    an[j]=(chr(ord('a')+wk))
    n= n//26
    j+=1
    
an.reverse()
print(''.join(an))

### FIXED CODE ###

n = int(input())

nn=n
i=1
while nn > 26**i:
    nn-=26**i
    i+=1

an=['a']*i
j=0
while n:
    n-=1
    wk=n%26
    an[j]=(chr(ord('a')+wk))
    n = n//26
    j+=1
    
an.reverse()
print(''.join(an))
def solve(N, K, h):
	INF = 10000 * N * K + 10000
	cost = [INF for _ in range(N)]
	cost[0] = 0
	for i in range(N):
		for j in range(min(N, i + 1), min(N, i + K + 1)):
			cost_ij = abs(h[i] - h[j]) + cost[i]
			cost[j] = min(cost[j], cost_ij)
	return cost[N - 1]


def main():
	N , K = list(map(int, input().split()))
	h = list(map(int, input().split()))
	assert len(h) == N
	assert N >= 2
	res = solve(N, K, h)
	print(res)


if __name__ == '__main__':
	main()

### FIXED CODE ###

def solve(h):
	best_p = abs(h[0] - h[1])
	best_pp = 0
	n = 2
	while n < len(h):
		cost1 = best_p + abs(h[n] - h[n-1])
		cost2 = best_pp + abs(h[n] - h[n-2])
		best = min(cost1, cost2)
		best_pp, best_p = best_p, best
		n = n + 1
	return best_p


def main():
	N = int(input())
	heights = list(map(int, input().split()))
	assert len(heights) == N
	assert N >= 2
	res = solve(heights)
	print(res)


if __name__ == '__main__':
	main()
#ATCGを小文字へ置き換え、小文字を抽出する作戦
S=input().replace("A","a").replace("T","t").replace("C","c").replace("G","g")

#小文字の列を取得
import re
list=re.findall(r"[a-z]+",S)

#各列の文字列の長さをリストに
list2=[]
for i in range(len(list)):
  list2.append(len(list[i]))

print(max(list2))

### FIXED CODE ###

#ATCGを小文字へ置き換え、小文字を抽出する作戦
S=input().replace("A","a").replace("T","t").replace("C","c").replace("G","g")

#小文字の列を取得
import re
list=re.findall(r"[a-z]+",S)

#各列の文字列の長さをリストに
list2=[]
for i in range(len(list)):
  list2.append(len(list[i]))
  
#リストが空の場合との場合分け
if list2 ==[]:
  print(0)
else:
  print(max(list2))
N = int(input())
X = input()

memo = dict()
memo["0"] = 0

def f(x):
    if x in memo:
        return memo[x]
    val = int(x, 2) % x.count("1")
    v = bin(val)[2:]
    memo[x] = f(v) + 1
    return memo[x]
    
ans = []
for i in range(N):
    if X[i] == "0":
        x = X[:i] + "1" + X[i+1:]
    else:
        x = X[:i] + "0" + X[i+1:]
    ans.append(f(x))

for v in ans:
    print(v)


### FIXED CODE ###

N = int(input())
X = input()

a = int(X, 2)
b = X.count("1")

if b > 1:
    a1 = a % (b-1)
else:
    a1 = 0
a0 = a % (b+1)

for i in range(N):
    if X[i] == "1":
        if b == 1:
            print(0)
            continue
        t = (a1 - pow(2, N-1-i, b-1)) % (b-1)
    else:
        t = (a0 + pow(2, N-1-i, b+1)) % (b+1)
    
    ans = 1
    while t > 0:
        t %= bin(t).count("1")
        ans += 1
    print(ans)
n=5
m=3
scores=[[1, -2, 3],
[-4, 5, -6],
[7, -8, -9],
[-10, 11, -12],
[13, -14, 15]]

smax=None
for x in range(2):
    scores_=copy.deepcopy(scores)
    
    for i in range(n):
        scores_[i][0] = pow(-1,x)*scores[i][0]
    for y in range(2):
        for i in range(n):
            scores_[i][1] = pow(-1,y)*scores[i][1]
        for z in range(2):
            for i in range(n):
                scores_[i][2] = pow(-1,z)*scores[i][2]
        
            sumlist=list()
            for i in range(n):
                sumlist.append(sum(scores_[i]))
            sumlist.sort()
            
            tmp=0
            for eat in range(m):
                tmp+=sumlist[-1]
                sumlist.pop()
            if smax==None or tmp>smax:
                smax=tmp
print(smax)

### FIXED CODE ###

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

#取得
scores = list()
for i in range(n):
    score = list(map(int,input().split()))
    scores.append(score)

smax=None
for x in range(2):
    scores_=copy.deepcopy(scores)
    
    for i in range(n):
        scores_[i][0] = pow(-1,x)*scores[i][0]
    for y in range(2):
        for i in range(n):
            scores_[i][1] = pow(-1,y)*scores[i][1]
        for z in range(2):
            for i in range(n):
                scores_[i][2] = pow(-1,z)*scores[i][2]
        
            sumlist=list()
            for i in range(n):
                sumlist.append(sum(scores_[i]))
            sumlist.sort()
            
            tmp=0
            for eat in range(m):
                tmp+=sumlist[-1]
                sumlist.pop()
            if smax==None or tmp>smax:
                smax=tmp
print(smax)
s = input()
K = int(input())

new = ""
for i in range(len(s) - 1):
  diff = 123 - ord(s[i])
  if diff < K:
    K -= diff
    new += "a"
  else:
    new += s[i]

if K > 0:
  new_char = ord(s[-1]) + K
  if new_char > 122:
    new_char = 96 + (new_char - 122)
  new += chr(new_char)
else:
  new += s[-1]

print(new)



### FIXED CODE ###

s = input()
K = int(input())

new = ""
for i in range(len(s) - 1):
  diff = (123 - ord(s[i])) % 26
  if diff <= K:
    K -= diff
    new += "a"
  else:
    new += s[i]

if K > 0:
  new_char = ord(s[-1]) + (K % 26)
  if new_char > 122:
    new_char = 96 + (new_char - 122)
  new += chr(new_char)
else:
  new += s[-1]

print(new)
a, b, n = map(int,input().split())

ans = 0
for i in range(1, n+1):
    ans = max(ans, a*i//b - a*(i//b))

print(max(ans))

### FIXED CODE ###

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

if n >= b-1:
    x = b-1
else:
    x = n

print(a*x//b - a*(x//b))
a,b=map(int,input().split())

print(a*b//math.gcd(a,b))

### FIXED CODE ###

def gcd(m,n):
	x=max(m,n)
	y=min(m,n)
	if x%y==0:
		return y
	else:
		while x%y!=0:
			z=x%y
			x=y
			y=z
		else:
			return z

def lcm(m,n):
	return int(m*n/gcd(m,n))
	
	
a,b=map(int,input().split())
print(lcm(a,b))