You are given two strings $s$ and $t$, both consisting of exactly $k$ lowercase Latin letters, $s$ is lexicographically less than $t$.

Let's consider list of all strings consisting of exactly $k$ lowercase Latin letters, lexicographically not less than $s$ and not greater than $t$ (including $s$ and $t$) in lexicographical order. For example, for $k=2$, $s=$"az" and $t=$"bf" the list will be ["az", "ba", "bb", "bc", "bd", "be", "bf"].

Your task is to print the median (the middle element) of this list. For the example above this will be "bc".

It is guaranteed that there is an odd number of strings lexicographically not less than $s$ and not greater than $t$.


-----Input-----

The first line of the input contains one integer $k$ ($1 \le k \le 2 \cdot 10^5$) — the length of strings.

The second line of the input contains one string $s$ consisting of exactly $k$ lowercase Latin letters.

The third line of the input contains one string $t$ consisting of exactly $k$ lowercase Latin letters.

It is guaranteed that $s$ is lexicographically less than $t$.

It is guaranteed that there is an odd number of strings lexicographically not less than $s$ and not greater than $t$.


-----Output-----

Print one string consisting exactly of $k$ lowercase Latin letters — the median (the middle element) of list of strings of length $k$ lexicographically not less than $s$ and not greater than $t$.


-----Examples-----
Input
2
az
bf

Output
bc

Input
5
afogk
asdji

Output
alvuw

Input
6
nijfvj
tvqhwp

Output
qoztvz
[{"code": "k = int(input())\na = reversed(input())\nb = reversed(input())\n\naa = [0] * (k + 1)\nbb = [0] * (k + 1)\nfor i, x in enumerate(a):\n    aa[i] = ord(x) - 97\nfor i, x in enumerate(b):\n    bb[i] = ord(x) - 97\n\ncarry = 0\ncc = [0] * (k + 1)\nfor i in range(k + 1):\n    cc[i] = aa[i] + bb[i] + carry\n    if cc[i] >= 26:\n        carry = 1\n        cc[i] -= 26\n    else:\n        carry = 0\n\ncarry = 0\nfor i in reversed(list(range(k+1))):\n    value = carry * 26 + cc[i]\n    carry = value % 2\n    cc[i] = value // 2\n\nanswer = \"\"\nfor x in reversed(cc[:-1]):\n    answer += chr(x + 97)\nprint(answer)\n\n", "passed": true, "time": 1.63, "memory": 14260.0, "status": "done"}, {"code": "n = int(input())\nss = input()\ns = ss[::-1]\nt = input()[::-1]\ntt = [0] * n\nfor i in range(n):\n    c = ord(s[i]) - ord('a')\n    tt[i] = ord(t[i]) - ord('a')\n    tt[i] -= c\nfor i in range(n - 1):\n    if tt[i] < 0:\n        tt[i] += 26\n        tt[i + 1] -= 1\n\ntt = tt[::-1]\nrem = 0\nfor i in range(n):\n    rem = rem * 26 + tt[i]\n    tt[i] = rem // 2\n    rem = rem % 2\nres = [x for x in ss]\nfor i in range(n - 1, -1, -1):\n    c = tt[i] + ord(res[i]) - ord('a')\n    tt[i] = c % 26\n    if i > 0:\n        tt[i - 1] += c // 26\n    res[i] = chr(tt[i] + ord('a'))\nprint(''.join(res))\n", "passed": true, "time": 0.16, "memory": 14188.0, "status": "done"}, {"code": "def main():\n    n = int(input())\n    s = input()\n    k = input()\n    arr = [0] + [ord(s[i]) + ord(k[i]) - 2 * ord('a')for i in range(n)]\n    for i in range(n, -1, -1):\n        if arr[i] >= 26:\n            arr[i] -= 26\n            arr[i - 1] += 1\n    for i in range(n, -1, -1):\n        if arr[i] % 2: arr[i + 1] += 13\n        arr[i] //= 2\n    for i in range(n + 1): arr[i] = chr(arr[i] + ord('a'))\n    print(''.join(arr[1:]))\n    return 0\nmain()", "passed": true, "time": 0.15, "memory": 14252.0, "status": "done"}, {"code": "#Bhargey Mehta (Sophomore)\n#DA-IICT, Gandhinagar\nimport sys, math, queue\nsys.setrecursionlimit(1000000)\n#sys.stdin = open(\"input.txt\", \"r\")\n\nn = int(input())\na = list(input())\nb = list(input())\na = [ord(ai)-97 for ai in a]\nb = [ord(bi)-97 for bi in b]\n\na = [a[i] for i in range(-1, -n-1, -1)]\nb = [b[i] for i in range(-1, -n-1, -1)]\nc = [-1 for i in range(n)]\ncarry = 0\nfor i in range(n):\n    if i != n-1:\n        c[i] = (carry+a[i]+b[i])%26\n    else:\n        c[i] = carry+a[i]+b[i]\n    carry = (carry+a[i]+b[i])//26\n#print(a)\n#print(b)\nc = [c[i] for i in range(-1, -n-1, -1)]\n\ncarry = 0\nfor i in range(n):\n    p = (carry*26 + c[i])//2\n    carry = (carry*26+c[i])%2\n    c[i] = p\nc = [chr(c[i]+97) for i in range(n)]\nprint(''.join(c))", "passed": true, "time": 0.15, "memory": 14328.0, "status": "done"}, {"code": "N = int(input())\ns = input()\nt = input()\n\ndef stoi(s):\n    return ord(s)-97\ndef itos(i):\n    return chr(97+i)\n\ndef stoL(s):\n    L = []\n    for ss in s:\n        L.append(stoi(ss))\n    return L\n\nA = stoL(s)\nB = stoL(t)\nC = [A[i]+B[i] for i in range(N)]\nfor i in range(1, N)[::-1]:\n    if C[i] >= 26:\n        C[i] -= 26\n        C[i-1] += 1\n\nt = 0\nfor i in range(N):\n    if C[i] % 2:\n        C[i] = (C[i]+t-1) // 2\n        t = 26\n    else:\n        C[i] = (C[i]+t) // 2\n        t = 0\n\nu = \"\"\nfor c in C:\n    u += itos(c)\nprint(u)\n", "passed": true, "time": 0.16, "memory": 14396.0, "status": "done"}, {"code": "k = int(input())\ns = input()\nt = input()\nval = [0 for i in range(0, k)]\nnval = [0 for i in range(0, k)]\nfor i in range(0, k):\n    val[i] = ord(s[i]) - ord('a') + ord(t[i]) - ord('a')\nans = ['a' for i in range(0, k)]\ncarry = 0\nfor i in range(0, k):\n    ncarry = 0\n    t = val[i] // 2 + carry\n    if val[i] % 2 == 1:\n        ncarry += 13\n    nval[i] = t\n    carry = ncarry\nfor i in range(k - 1, -1, -1):\n    if nval[i] >= 26:\n        nval[i - 1] += nval[i] // 26\n        nval[i] %= 26\n    ans[i] = chr(ord('a') + nval[i])\nprint(\"\".join(x for x in ans))", "passed": true, "time": 0.16, "memory": 14352.0, "status": "done"}, {"code": "n = int(input())\ns = input()\nt = input()\ndic = [\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\"]\n\nslis = []\ntlis = []\nfor i in s:\n    slis.append(dic.index(i))\nfor i in t:\n    tlis.append(dic.index(i))\n\nsumlis = []\ncout = 0\nfor j in range(n-1, -1, -1):\n    res = slis[j] + tlis[j] + cout\n    if j != 0:\n        if res >= 26:\n            res = res%26\n            cout = 1\n        else:\n            cout = 0\n    sumlis.append(res)\n\ntotal = sumlis[::-1]\n\nfor i in range(n):\n    if total[i]%2 == 1:\n        total[i] //= 2 \n        total[i+1] += 26\n    else:\n        total[i] //= 2\n\nresult = []\n\nfor i in total:\n    result.append(dic[i])\n\nprint(\"\".join(result))", "passed": true, "time": 0.14, "memory": 14208.0, "status": "done"}, {"code": "import string, copy\n\n\ndef _value(c):\n    return ord(c) - 97\n\ndef _char(i):\n    return chr(i + 97)\n\n\ndef solution(s1, s2):\n    s1 = [_value(c) for c in s1]\n    s2 = [_value(c) for c in s2]\n\n    # Sum\n    sum_s = []\n    tmp = 0\n    for i in range(len(s1)-1, -1, -1):\n        s = s1[i] + s2[i] + tmp\n        tmp = s // 26\n        sum_s.append(s % 26)\n    if tmp:\n        sum_s.append(tmp)\n\n    sum_s = sum_s[::-1]\n\n    # Div by 2\n    tmp = 0\n    result = []\n    for i in range(len(sum_s)):\n        s = sum_s[i]\n        result.append((s + 26 * tmp) // 2)\n        tmp = s % 2\n\n    result = result[-len(s1):]\n    result = [_char(i) for i in result]\n    return ''.join(result)\n\n\n\n#     tmp = 0\n#     s = []\n#     for c1, c2 in zip(s1, s2):\n#         cur = _value(c1) + _value(c2) - tmp * 26\n#         tmp = cur % 2\n#         s.append(_char((cur + 1) // 2))\n#     return ''.join(s)\n\n\ndef parser():\n    n = int(input())\n    s1 = input()\n    s2 = input()\n    return s1, s2\n\n\ndef output(s):\n    print(s)\n\n\ndef main():\n   args = parser()\n   result = solution(*args)\n   output(result)\n\n\ndef __starting_point():\n    main()\n__starting_point()", "passed": true, "time": 0.23, "memory": 14288.0, "status": "done"}, {"code": "def to_cc26(s):\n    result = [ord(v) - ord('a') for v in s]\n    result.reverse()\n    return result\n\n\ndef to_number(a):\n    result = 0\n    mult = 1\n    for v in a:\n        result += v * mult\n        mult *= 26\n    return result\n\n\ndef minus(b, a):\n    index = 0\n    result = []\n    additional = 0\n    while index < len(b):\n        if b[index] >= a[index] + additional:\n            result.append(b[index] - a[index] - additional)\n            additional = 0\n        else:\n            result.append(b[index] + 26 - a[index] - additional)\n            additional = 1\n        index += 1\n    return result\n\n\ndef plus(a, b):\n    index = 0\n    result = []\n    additional = 0\n    while index < len(a):\n        if b[index] + a[index] + additional < 26:\n            result.append(b[index] + a[index] + additional)\n            additional = 0\n        else:\n            result.append(b[index] + a[index] + additional - 26)\n            additional = 1\n        index += 1\n    return result\n\n\ndef to_str(a):\n    a.reverse()\n    return ''.join(chr(v + ord('a')) for v in a)\n\n\ndef divide_2(a):\n    a.reverse()\n    result = []\n    index = 0\n    value = 0\n    while index < len(a):\n        value = value * 26 + a[index]\n        result.append(value // 2)\n        value %= 2\n        index += 1\n    result.reverse()\n    return result\n\n\ndef solve(s, t):\n    b = to_cc26(t)\n    a = to_cc26(s)\n    diff_26 = minus(b, a)\n    half_diff = divide_2(diff_26)\n    result_26 = plus(a, half_diff)\n    return to_str(result_26)\n\n\ndef main() -> None:\n    n = int(input())\n    s = input()\n    t = input()\n    print(solve(s, t))\n\n\ndef __starting_point():\n    main()\n\n__starting_point()", "passed": true, "time": 0.22, "memory": 14292.0, "status": "done"}, {"code": "orda = ord('a')\nord0 = ord('z')-orda+1\n\nn = int(input())\ns = input()\nt = input()\nsv = [ord(si)-orda for si in s]\ntv = [ord(ti)-orda for ti in t]\n\nmedv = [ord(si)-orda for si in s]\nfor i in range(n-1, -1, -1):\n    medv[i] += tv[i]\n    if i > 0 and medv[i] >= ord0:\n        medv[i] -= ord0\n        medv[i-1] += 1\nfor i in range(n):\n    if i < n-1 and medv[i]%2 == 1:\n        medv[i+1] += ord0\n    medv[i] //= 2\nans = ''.join([chr(medvi+orda) for medvi in medv])\nprint(ans)\n", "passed": true, "time": 0.15, "memory": 14440.0, "status": "done"}, {"code": "\nn = int(input())\n\ns1 = [ord(x) - 97 for x in input()]\ns2 = [ord(x) - 97 for x in input()]\n\ns12s = s1[n-1]+s2[n-1]\nres = []\nni = n-1\nwhile ni > 0:\n\tni-=1\n\ts12s+=(s1[ni]+s2[ni])*26\n\tres.append(chr((s12s//2)%26+97))\n\ts12s=s12s//26\nres.append(chr((s12s//2)%26+97))\n\nni = n\nwhile ni>0:\n\tni-=1\n\tprint(res[ni], end='')\nprint()\n", "passed": true, "time": 0.15, "memory": 14308.0, "status": "done"}, {"code": "# python template for atcoder1\nimport sys\nsys.setrecursionlimit(10**9)\ninput = sys.stdin.readline\n\nN = int(input())\nS = [ord(c)-ord('a') for c in input()[:-1]]\nT = [ord(c)-ord('a') for c in input()[:-1]]\n\nans = []\np = N-1\nbemp = S[p]+T[p]\nwhile p > 0:\n    p -= 1\n    bemp += (S[p]+T[p])*26\n    ans.append(chr((bemp//2) % 26+ord('a')))\n    bemp //= 26\nans.append(chr((bemp//2) % 26+ord('a')))\nprint(\"\".join(map(str, reversed(ans))))\n", "passed": true, "time": 0.14, "memory": 14264.0, "status": "done"}, {"code": "import math,string,itertools,fractions,heapq,collections,re,array,bisect,sys,copy,functools\n\nsys.setrecursionlimit(10**7)\ninf = 10**20\neps = 1.0 / 10**10\nmod = 10**9+7\ndd = [(-1,0),(0,1),(1,0),(0,-1)]\nddn = [(-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1),(-1,-1)]\n\ndef LI(): return [int(x) for x in sys.stdin.readline().split()]\ndef LI_(): return [int(x)-1 for x in sys.stdin.readline().split()]\ndef LF(): return [float(x) for x in sys.stdin.readline().split()]\ndef LS(): return sys.stdin.readline().split()\ndef I(): return int(sys.stdin.readline())\ndef F(): return float(sys.stdin.readline())\ndef S(): return input()\ndef pf(s): return print(s, flush=True)\n\n\ndef main():\n    n = I()\n    s = [ord(c)-ord('a') for c in S()]\n    t = [ord(c)-ord('a') for c in S()]\n    r = [s[i]+t[i] for i in range(n)]\n    for i in range(n-1,0,-1):\n        if r[i] >= 26:\n            r[i] -= 26\n            r[i-1] += 1\n    k = 0\n    rs = []\n    for i in range(n):\n        b = r[i] + k\n        rs.append(chr(b // 2 + ord('a')))\n        if b % 2 == 0:\n            k = 0\n        else:\n            k = 26\n\n    return ''.join(rs)\n\n\nprint(main())\n\n\n", "passed": true, "time": 0.15, "memory": 14276.0, "status": "done"}, {"code": "def main():\n    n = int(input())\n    s = [ord(c)-ord('a') for c in input()]\n    t = [ord(c)-ord('a') for c in input()]\n    r = [s[i] + t[i] for i in range(n)]\n\n    for i in range(n - 1, 0, -1):\n        if r[i] >= 26:\n            r[i] -= 26\n            r[i-1] += 1\n    k = 0\n    rs = [0] * n\n    for i in range(n):\n        b = r[i] + k\n        rs[i] = chr(b // 2 + ord('a'))\n        \n        if b % 2:\n            k = 26\n        else:\n            k = 0\n\n    return ''.join(rs)\n\n\nprint(main())", "passed": true, "time": 0.14, "memory": 14312.0, "status": "done"}, {"code": "def main():\n    n = int(input())\n    s = [ord(c)-ord('a') for c in input()]\n    t = [ord(c)-ord('a') for c in input()]\n    r = [s[i] + t[i] for i in range(n)]\n\n    for i in range(n - 1, 0, -1):\n        if r[i] >= 26:\n            r[i] -= 26\n            r[i-1] += 1\n    k = 0\n    rs = [0] * n\n    for i in range(n):\n        b = r[i] + k\n        rs[i] = chr(b // 2 + ord('a'))\n        \n        if b % 2:\n            k = 26\n        else:\n            k = 0\n\n    return ''.join(rs)\n\n\nprint(main())", "passed": true, "time": 0.14, "memory": 14348.0, "status": "done"}, {"code": "#!/usr/bin/env python\nfrom itertools import accumulate\n\nn, s, t = int(input()), input(), input()\n\na = [0,] + [ord(s[i]) + ord(t[i]) - (ord('a') << 1) for i in range(n)]\n\nfor i in range(n, -1, -1):\n\tif a[i] >= 26:\n\t\ta[i] -= 26\n\t\ta[i - 1] += 1\n\nfor i in range(n, -1, -1):\n\tif a[i] & 1:\n\t\ta[i + 1] += 13\n\ta[i] >>= 1\n\nprint(''.join([chr(ord('a') + _) for _ in a[1:]]))\n", "passed": true, "time": 0.14, "memory": 14332.0, "status": "done"}, {"code": "def arr(ls):\n\tl = [0]*len(ls)\n\tfor i,v in enumerate(ls):\n\t\tl[i] = ord(v)-97\n\treturn l\ndef div2(ls, n):\n\tcarry = 0\n\tfor i in range(n):\n\t\trem = ls[i]%2 == 1\n\t\tls[i] = ls[i]//2 + carry\n\t\tif rem: carry = 13\n\t\telse: carry = 0\n\treturn ls\ndef subtr(ls1, ls2,n):\n\tcarry = 0\n\tfor i in range(n-1, -1, -1):\n\t\tls1[i]-=carry\n\t\tcarry = int(ls1[i] < ls2[i])\n\t\tls1[i] = (ls1[i]-ls2[i])%26\n\treturn ls1\ndef add(ls1, ls2, n):\n\tfor i in range(n-1, -1, -1):\n\t\tls1[i] += ls2[i]\n\t\tif ls1[i] > 25:\n\t\t\tls1[i-1]+=1\n\t\t\tls1[i]-=26\n\treturn ls1\nimport io, os\n# input = io.BytesIO(os.read(0, os.fstat(0).st_size)).readline\n# input = io.StringIO(os.read(0, os.fstat(0).st_size).decode()).readline\nkk=lambda:list(map(int,input().split()))\nk2=lambda:[int(x)-1 for x in input().split()]\nll=lambda:list(kk())\nn,w1, w2 =int(input()), list(input().strip()), list(input().strip())\nls1, ls2 = arr(w1), arr(w2)\nsubtr(ls2, ls1, n)\ndiv2(ls2, n)\nadd(ls1, ls2, n)\nprint(\"\".join([chr(97+x) for x in [x for x in ls1]]))\n", "passed": true, "time": 0.14, "memory": 14424.0, "status": "done"}, {"code": "\"\"\"tri=[False]\ndef knight(x0,y0,moves,a):\n\tnonlocal n,tri\n\tm=[x0,y0]\n\t#elif moves==0:\n\telif m==a:\n\t\ttri[0]=True\n\tx1=x0+1\n\ty1=y0+1\n\n\tif x1<=n and moves>0 and not([x1,y0] in y):\n\t\tknight(x1,y0,moves-1,a)\n\tif y1<=n and moves>0 and not([x0,y1] in y):\n\t\tknight(x0,y1,moves-1,a)\n\ny=[]\t#list of obstacles\nn=int(input())\t#n*n\nk=int(input())\t#no of moves\no=int(input())\t#obstacles\nfor i in range(o):\n\ty+=[list(map(int,input().split(\" \")))]\n\np=int(input())\t#no of values to check\nfor i in range(p):\n\tx=[]\n\ttri[0]=False\n\tc=list(map(int,input().split(\" \")))\n\tknight(1,1,k,c)\n\tprint(tri[0])\n\n\t\"\"\"\n\"\"\"\nno=input()\ntowords(no[:])\n\n\ndef assist1(no):\n\tno=int(no)\n\n\tif no==1:\n\t\tto_add='one'\n\telif no==2:\n\t\tto_add='two'\n\telif no==3:\n\t\tto_add='three'\n\telif no==4:\n\t\tto_add='four'\n\telif no==5:\n\t\tto_add='five'\n\telif no==6:\n\t\tto_add='six'\n\telif no==7:\n\t\tto_add='seven'\n\telif no==8:\n\t\tto_add='eight'\n\telif no==9:\n\t\tto_add='nine'\n\telse:\n\t\tto_add=''\n\ndef assist2(no):\n\tbelow_hundred=int(no)\n\n\t\n\tif below_hundred==10:\n\t\tto_add='ten'\n\telif below_hundred==20:\n\t\tto_add='twenty'\n\telif below_hundred==30:\n\t\tto_add='thirty'\n\telif below_hundred==40:\n\t\tto_add='forty'\n\telif below_hundred==50:\n\t\tto_add='fifty'\n\telif below_hundred==60:\n\t\tto_add='sixty'\n\telif below_hundred==70:\n\t\tto_add='seventy'\n\telif below_hundred==80:\n\t\tto_add='eighty'\n\telif below_hundred==90:\n\t\tto_add='ninety'\n\telif below_hundred==11:\n\t\tto_add='eleven'\n\telif below_hundred==12:\n\t\tto_add='twelve'\n\telif below_hundred==13:\n\t\tto_add='thirteen'\n\telif below_hundred==14:\n\t\tto_add='fourteen'\n\telif below_hundred==15:\n\t\tto_add='felifteen'\n\telif below_hundred==16:\n\t\tto_add='sixteen'\n\telif below_hundred==17:\n\t\tto_add='seventeen'\n\telif below_hundred==18:\n\t\tto_add='eightteen'\n\telif below_hundred==19:\n\t\tto_add='nineteen'\n\telse:\n\t\tto_add=''\n\ndef towords(no):\n\n\tif 10<below_hundred<20 or below_hundred%10==0:\n\t\tassist1(no[:-2])\n\t\n\telse:\n\t\t=assist(no[-1])\n\n\tif int(no)>100:\n\"\"\"\n\n#str_num=[]\n#n=int(input())\n#arr=input()\n#for i in arr:\n#\tstr_num.append(int(i))\n\"\"\"\ndef find_sub(stri):\n\tmaxi=0\n\tif stri[0]=='S':\n\t\tstri=stri[stri.find('G'):]\n\n\twhile True:\n\t\tif stri.find('G')==-1 :\n\t\t\tbreak\n\n\t\telif stri.find('S')==-1 :\n\t\t\tif len(stri)>maxi:\n\t\t\t\tmaxi=len(stri)\n\t\t\tbreak\n\n\t\tend_index=stri.find('S')\n\t\tstri=stri[end_index:]\n\n\t\tif end_index > maxi:\n\t\t\tmaxi=end_index\n\n\t\tvar=stri.find('G')\n\t\tif var!=-1:\n\t\t\tstri=stri[var:]\n\n\treturn maxi\n\n\t\t\t\n\n\t\t\n\ndef main():\n\tn=int(input())\n\ttrophies=input()\n\n\tif trophies.find('S')==-1:\n\t\treturn n\n\tif trophies.find('G')==-1:\n\t\treturn 0\n\n\n\tmaxy=0\n\tfor i in range(n):\n\t\tfor j in range(i+1,n):\n\t\t\tif trophies[i]!=trophies[j]:\t\t\t\n\t\t\t\ttemp=find_sub(trophies[:i]+trophies[j]+trophies[i+1:j]+trophies[i]+trophies[j+1:])\n\t\t\t\tif temp> maxy:\n\t\t\t\t\tmaxy=temp\n\n\treturn maxy\n\n#print(main())\n\nfor i in range(100000):\n\tprint(\"a\", end=\"\")\"\"\"\n\n\"\"\"\ndef hhh():\n\tn,m=map(int,input().split())\n\tdone=[]\n\tcount=0\n\n\tA=list(map(int,input().split(\" \")))\n\tB=list(map(int,input().split(\" \")))\n\n\tfor i in range(m):\n\t\tdone.append(A[0]+B[i])\n\t\tprint(0,i)\n\n\n\twhile True:\n\t\tfor i in range(n):\n\t\t\tfor j in range(m):\n\t\t\t\tif(A[i]+B[j] not in done):\n\t\t\t\t\tprint(i,j)\n\t\t\t\t\tdone.append(A[i]+B[j])\n\t\t\t\t\tcount+=1\n\t\t\t\t\tif count==m+n-1:\n\t\t\t\t\t\tprint(done)\n\t\t\t\t\t\treturn\n\nhhh()\n\n\ndef Tee(N,M):\n\tif M - N>0:\n\t\ttemp=str(M - N)\n\telse:\n\t\ttemp=str(N - M)\n#\tprint(temp)\n\tif (int(temp)/2)%2!=0:\n\t\tprint(\"Even\")\n\telse:\n\t\tprint(\"Odd\")\n\n\t\nfor i in range(int(input())):\n\tN,M=map(str,input().split(\" \"))\n\tif int(N[-1])%2==0:\n\t\tN1=int(N[-1])+1\n#\t\tprint(N,N[-1],N1)\n\telse:\n\t\tN1=int(N[-1])\n#\t\tprint(N,N[-1],N1)\t\n\tif int(M[-1])%2==0:\n\t\tM1=int(M[-1])-1\n#\t\tprint(M,M[-1],M1)\n\telse:\n\t\tM1=int(M[-1])\n\tTee(N1,M1)\"\"\"\n\"\"\"\t\nfrom copy import deepcopy\ndef rec(current,final,time):\n\tif memoization[current[0]][current[1]]!=-1 and memoization[current[0]][current[1]]+matrix[current[0]][current[1]]>memoization[][]\n\nmatrix=[]\nmemoization=[]\nR,C=map(int,input().split())\n\n\ntemp=[-1 for i in range(C)]\n\nfor i in range(R):\n\tmatrix.append(list(map(int,input().split())))\n\tmemoization.append[temp[:]]\n\nD=int(input())\ncurrent=[0,0]\nfor i in range(D):\n\tx=int(input())\n\ty=int(input())\n\trec(current,[x-1,y-1])\n\n\nN,K,w=map(int,input().split())\n\nArr=list(map(int,input().split()))\nfinalScore=0\nfor i in range(K):\n\t\n\tsumAll=0\n\tstartAll=0\n\tendAll=0\n\tstart=0\n\tsumI=0\n\n\tfor j in range(N):\n\t\tif(j<w):\n\t\t\tstart=0\n\t\t\tsumI+=Arr[j]\n\t\telse:\n\t\t\tstart=j-w+1\n\t\t\tsumI+=(Arr[j]-Arr[j-w])\n\n\t\tif(sumI>sumAll):\n\t\t\tsumAll=sumI\n\t\t\tstartAll=start\n\t\t\tendAll=j\n\n\tfor j in range(N-w,N):\n\t\tsumI-=Arr[j]\n\t\tstart=j+1\n\n\t\tif(sumI>sumAll):\n\t\t\tsumAll=sumI\n\t\t\tstartAll=start\n\t\t\tendAll=N-1\n\tprint(startAll,endAll)\n\tfor q in range(startAll,endAll+1):\n\t\tArr[q]=0\n\tprint(Arr)\n\tfinalScore+=sumAll\n\nprint(finalScore)\nclass div(object):\n\n\tdef __init__(self,no5,no2):\n\t\tself.no2 = no2\n\t\tself.no5 = no5\n\n\tdef __add__(self,toadd):\n\t\treturn(div(self.no5+toadd.no5,self.no2+toadd.no2))\n\t\na=[]\nans=[[]]\npath=[[]]\n\ndef rec(divObj,i,j,N,pathi):\n\tzeros=min(divObj.no5,divObj.no2)\n\n\tif ans[i][j]!=-1 and zeros<ans[i][j]:\n\t\tans[i][j]=zeros\n\t\tpath[i][j]=pathi\n\telif ans[i][j]==-1:\n\t\tans[i][j]=zeros\n\t\tpath[i][j]=pathi\n\telse:\n\t\treturn\n\n\tif j+1<N:\n\t\trec(divObj+a[i][j+1],i,j+1,N,pathi+\"R\")\n\n\tif i+1<N:\n\t\trec(divObj+a[i+1][j],i+1,j,N,pathi+\"D\")\n\nN=int(input())\n\nfor i in range(N):\n\ta.append(list(map(int,input().split())))\n\nfor i in range(N):\n\tfor j in range(N):\n\t\ttemp=a[i][j]\n\n\t\ta[i][j]=div(0,0)\n\n\t\tbr1=temp\n\n\t\twhile True:\n\t\t\tbr1=br1/5\n\t\t\tif br1%1==0:\n\t\t\t\ta[i][j].no5+=1\n\t\t\telse:\n\t\t\t\tbreak\n\n\t\tbr2=temp\n\n\t\twhile True:\n\t\t\tbr2=br2/2\n\t\t\tif br2%1==0:\n\t\t\t\ta[i][j].no2+=1\n\t\t\telse:\n\t\t\t\tbreak\n\nans = [[-1 for i in range(N)] for j in range(N)]\npath = [[\"\" for i in range(N)] for j in range(N)]\n\nrec(a[0][0],0,0,N,\"\")\n\nprint(ans[N-1][N-1])\nprint(path[N-1][N-1])\"\"\"\n\n\ndicti={}\nfor i in range(26):\n\tdicti[chr(97+i)]=i+1\n\n#print(dicti)\n\nk=int(input())\nstr1=list(input())\nstr2=list(input())\n\ndelta=[]\n\nfor i in range(k):\n\tstr1[i]=dicti[str1[i]]\n\tstr2[i]=dicti[str2[i]]\n\tdelta.append(str2[i]-str1[i])\n\nfor i in range(k-1,0,-1):\n\tif(delta[i]<0):\n\t\tdelta[i-1]-=1\n\t\tdelta[i]+=26\n\ndivide=[]\n\nfor i in range(k-1):\n\tdivide.append(delta[i])\n\tif(delta[i]%2!=0):\n\t\tdivide[i]=delta[i]//2\n\t\tdelta[i+1]+=26\n\telse:\n\t\tdivide[i]=delta[i]//2\n\t#print(i,divide,delta)\n\ndivide.append(delta[-1]//2)\n\nans=[0 for i in range(k)] \n\nfor i in range(k-1,-1,-1):\n\tsumi=str1[i]+divide[i]\n\tif(sumi>26):\n\t\tsumi-=26\n\t\tif(i!=0):\n\t\t\tdivide[i-1]+=1\n\tans[i]=(chr)(96+sumi)\n\nprint(*ans,sep=\"\")", "passed": true, "time": 0.14, "memory": 14388.0, "status": "done"}, {"code": "n = int(input())\ns, t = input(), input()\n\na = [ord(i) - ord('a') for i in s]\nb = [ord(i) - ord('a') for i in t]\na, b, c = a[::-1], b[::-1], [0] * (n + 1)\n\nfor i in range(n):\n    c[i] = c[i] + a[i] + b[i]\n    c[i+1] = c[i] // 26\n    c[i] = c[i] % 26\nc = c[::-1]\nif c[0] == 0:\n    c = c[1:]\n\nans = []\nost = 0\nfor digit in c:\n    ost = ost * 26 + digit\n    t = ost // 2\n    ans.append(t)\n    ost = digit % 2\n\nif ans[0] == 0 and len(ans) > n:\n    ans = ans[1:]\nans = ''.join([chr(i + ord('a')) for i in ans])\nprint(ans)", "passed": true, "time": 0.14, "memory": 14356.0, "status": "done"}, {"code": "#\t\u272a H4WK3yE\u4e61\n#\tMayank Chaudhary\n#\tABES EC , Ghaziabad\n# ///==========Libraries, Constants and Functions=============///\nimport sys\nfrom bisect import bisect_left,bisect_right\nfrom collections import deque,Counter\nfrom math import gcd,sqrt,factorial,ceil,log\nfrom itertools import permutations\ninf = float(\"inf\")\nmod = 1000000007\nmini=1000000007\n\ndef fact(n):                                                             # <------  To calculate factorial of n under modulo m\n    if n==0:\n        return 1\n    p=1;d=(10**9)+7\n    for i in range(1,n+1):\n        p=p*i\n        p=p%d\n    return p\ndef ncr(n,r):                                                          # < ------ To calculate nCr mod p value using Fermat Little under modulo m\n    d=10**9+7\n    num=fact(n)\n    den=(fact(r)*fact(n-r))%d\n    den=pow(den,d-2,d)\n    return (num*den)%d\ndef sieve(n):                                                          # <----- sieve of eratosthenes for prime no.\n    prime=[True for i in range(n+1)]\n    lst=[0]*(n+1)\n    p=2\n    while p*p<=n:\n        if prime[p]:\n            lst[p]=p\n            for i in range(p*p,n+1,p):\n                if prime[i]==True:\n                    prime[i]=False\n                    lst[i]=p\n        p=p+1\n    for i in range(1,n+1):\n        if lst[i]==0:\n            lst[i]=i\n    mylist=[0]*(n+1)\n    for i in range(2,n+1):\n        mylist[lst[i]]=mylist[lst[i]]+1\n    return mylist\n        \ndef binary(number):                                             #  <----- calculate the no. of 1's in binary representation of number\n    result=0\n    while number:\n        result=result+1\n        number=number&(number-1)\n    return result\n\ndef calculate_factors(n):                                #<---- most efficient method to calculate no. of factors of number             \n    hh = [1] * (n + 1); \n    p = 2; \n    while((p * p) < n): \n        if (hh[p] == 1): \n            for i in range((p * 2), n, p): \n                hh[i] = 0; \n        p += 1;  \n    total = 1; \n    for p in range(2, n + 1): \n        if (hh[p] == 1):  \n            count = 0; \n            if (n % p == 0): \n                while (n % p == 0): \n                    n = int(n / p); \n                    count += 1; \n                total *= (count + 1); \n    return total;\n\ndef prime_factors(n):                                         #<------------ to find prime factors of a no.\n    i = 2\n    factors = set()\n    while i * i <= n:\n        if n % i:\n            i += 1\n        else:\n            n //= i\n            factors.add(i)\n    if n > 1:\n        factors.add(n)\n    if len(factors)==2:\n        return True\n    else:\n        return False\n\ndef isPrime(n):                                                      #<-----------check whether a no. is prime or not\n    if n==2 or n==3: return True\n    if n%2==0 or n<2: return False\n    for i in range(3,int(n**0.5)+1,2):   # only odd numbers\n        if n%i==0:\n            return False    \n\n    return True\ndef get_array(): return list(map(int, sys.stdin.readline().strip().split()))\ndef get_ints(): return map(int, sys.stdin.readline().strip().split())\ndef input(): return sys.stdin.readline().strip()\n# ///==========MAIN=============///\nn = int(input())\nA = [ord(c)-97 for c in input()]\nB = [ord(c)-97 for c in input()]\n\nC = [a+b for a,b in zip(A,B)]\nD = [0]*n\nfor i in range(n):\n    if C[i]&1:\n        D[i+1] += 13\n    D[i] += C[i]//2\n\nfor i in reversed(range(n)):\n    while D[i] >= 26:\n        D[i-1] += 1\n        D[i] -= 26\n\nprint(*[chr(d+97) for d in D], sep='')\n", "passed": true, "time": 0.24, "memory": 14356.0, "status": "done"}, {"code": "input()\na = input()\nb = input()\n\nx = []\ny = []\nfor c in a:\n    x.append(ord(c) - 97)\nfor c in b:\n    y.append(ord(c) - 97)\n\nresult = [u + v for u, v in zip(x, y)]\nfor i in range(len(result) - 1, 0, -1):\n    result[i - 1] += result[i] // 26\n    result[i] %= 26\nfor i, r in enumerate(result):\n    if r % 2 == 1:\n        result[i + 1] += 26\n    result[i] //= 2\n\nr = ''.join(chr(c + 97) for c in result)\nprint(r)\n", "passed": true, "time": 0.14, "memory": 14128.0, "status": "done"}]