Harryxun/stf_run huggingface dataset:
s=str(input())
t=["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"]
if len(s)!=26:
  for i in range(26):
    if t[i] not in s:
      s.append(t[i])
      break
  print("".join(s))
else:
  if "".join(s)=="zyxwvutsrqponmlkjihgfedcba":
    print(-1)
  else:
    a=[]
    for i in range(26):
      a.append(s[25-i])
      for j in a:
        if s<s[:25-i]+j:
          print(s[:25-i]+j)
          exit()

### FIXED CODE ###

s=str(input())
t=["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"]
if len(s)!=26:
  s=list(s)
  for i in range(26):
    if t[i] not in s:
      s.append(t[i])
      break
  print("".join(s))
else:
  if "".join(s)=="zyxwvutsrqponmlkjihgfedcba":
    print(-1)
  else:
    a=[]
    for i in range(26):
      a.append(s[25-i])
      for j in a:
        if s<s[:25-i]+j:
          print(s[:25-i]+j)
          exit()
list = [int(i) for i in input().split()] 
s = min(list)
list.strip(s)
t = min(list)
Time = s+t
print(Time)

### FIXED CODE ###

list = [int(i) for i in input().split()] 
s = min(list)
list.remove(s)
t = min(list)
Time = s+t
print(Time)
#!/usr/bin/env python3
import sys


def solve(X: int, K: int, D: int):
    if X<0:
        X*=-1

    mostl = X - K * D
    mostr = X + K * D
    if mostl*mostr>0:
        print(min(mostl, mostr))
        exit()

    ans=abs(X)
    if K%2 == 1:
        X -= D*flg
        K -= 1
        ans=min(ans, abs(X))

    N = X // (D*2)
    ans=min(ans, abs(X-D*2*N))
    if N < K//2:
        ans = min(ans, abs(X - D * 2 * (N+1)))

    print(ans)

    return


# Generated by 1.1.7.1 https://github.com/kyuridenamida/atcoder-tools  (tips: You use the default template now. You can remove this line by using your custom template)
def main():
    def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word
    tokens = iterate_tokens()
    X = int(next(tokens))  # type: int
    K = int(next(tokens))  # type: int
    D = int(next(tokens))  # type: int
    solve(X, K, D)

if __name__ == '__main__':
    main()


### FIXED CODE ###

#!/usr/bin/env python3
import sys


def solve(X: int, K: int, D: int):
    X=abs(X)

    mostl = X - K * D
    if mostl > 0:
        print(mostl)
        exit()

    if K%2 == 1:
        X -= D
        ans = min(abs(X), abs(X+2*D))
    else:
        ans = min(X, abs(X - K * D))

    Kh = K // 2

    N = X // (D*2)
    ans = min(ans, abs(X - D * 2 * (N - 1)))
    ans = min(ans, abs(X - D * 2 * N))
    if N < Kh:
        ans = min(ans, abs(X - D * 2 * (N + 1)))

    print(ans)

    return


# Generated by 1.1.7.1 https://github.com/kyuridenamida/atcoder-tools  (tips: You use the default template now. You can remove this line by using your custom template)
def main():
    def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word
    tokens = iterate_tokens()
    X = int(next(tokens))  # type: int
    K = int(next(tokens))  # type: int
    D = int(next(tokens))  # type: int
    solve(X, K, D)

if __name__ == '__main__':
    main()
import math
r = int(input())
print(f'{r**2*math.pi:.8f}')


### FIXED CODE ###

import math
r = float(input())
print(f'{r**2*math.pi:.8f} {math.pi*r*2:.8f}')
from heapq import heappush, heappop
from collections import defaultdict

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

q = []
for _ in range(N):
    t, d = map(int, input().split())
    heappush(q, (-d, t))

now_used = []
not_used = []

c = 0
su = 0
kn = set()
while q and c<K:
    d, t = heappop(q)
    if not t in kn:
        kn.add(t)
        heappush(now_used, (-d, t))
        su -= d
        c += 1
    else:
        heappush(not_used, (d, t))

used = len(now_used)
if K-used:
    for _ in range(K-used):
        d, t = heappop(not_used)
        su -= d
        heappush(now_used, (-d, t))

ans = su+c*c

while not_used:
    a, grp = heappop(now_used)
    su -= a
    kn.remove(grp)
    a, grp = heappop(not_used)
    kn.add(grp)
    su -= a
    c = len(kn)
    ans = max(ans, su+c*c)
print(ans)

### FIXED CODE ###

from collections import defaultdict as dd
import heapq

n,k=map(int,input().split())
l=[list(map(int,input().split())) for _ in range(n)]
l.sort(key=lambda x:-x[1])

sushi_types = set()
sushies = []
v=0

for i in range(k):
    t,d=l[i]
    v+=d
    if t in sushi_types:
        heapq.heappush(sushies,d)
    else:
        sushi_types.add(t)

remaining_sushi=dd(list)
for i in range(k,n):
    t,d=l[i]
    if not t in sushi_types:
        heapq.heappush(remaining_sushi[t],-d)

eat_candidate_sushi = []
for i in remaining_sushi.keys():
    if not i in sushi_types:
        heapq.heappush(eat_candidate_sushi,remaining_sushi[i][0])

sushi_kinds=len(sushi_types)
val=v
ans=v+sushi_kinds**2

for i in range(sushi_kinds+1,k+1):
    if sushies and eat_candidate_sushi:
        v-=heapq.heappop(sushies)
        v-=heapq.heappop(eat_candidate_sushi)
        ans=max(ans,v+i**2)
    else:
        break

print(ans)
A = []
[A.extend(map(int, input().split())) for _ in range(3)]
_, *B = map(int, open(0).read().split())
for b in B:
    try:
        i = A.index(b)
        A[i] = 0
    except Exception:
        pass
lines = [
    [0, 1, 2],
    [3, 4, 5],
    [6, 7, 8],
    [0, 3, 6],
    [1, 4, 7],
    [2, 5, 8],
    [0, 4, 8],
    [2, 4, 6],
]
ans = "No"
for line in lines:
    a, b, c = line
    if A[a] == 0 and A[a] == A[b] and A[a] == A[c]:
        ans = "Yes"
print(ans)


### FIXED CODE ###

A = []
[A.extend(map(int, input().split())) for _ in range(3)]
N = int(input())
B = [int(input()) for _ in range(N)]
for b in B:
    try:
        i = A.index(b)
        A[i] = 0
    except:
        pass
lines = [
    [0, 1, 2],
    [3, 4, 5],
    [6, 7, 8],
    [0, 3, 6],
    [1, 4, 7],
    [2, 5, 8],
    [0, 4, 8],
    [2, 4, 6],
]
ans = "No"
for line in lines:
    a, b, c = line
    if A[a] == 0 and A[a] == A[b] and A[a] == A[c]:
        ans = "Yes"
print(ans)
a,b = map(int,input().split())

l = [[]for _ in range(a)]
m = [[]for _ in range(b)]

for i in range(a):
    l[i] = list(input())
    for j in range(b):
        m[j].append(l[i][j])

p = []
for i in range(a):
    if l[i].count('.') == b:
        p.append(i)

q = []
for i in range(b):
    if m[i].count('.') == a:
        q.append(i)

count=0
for i in p:
    l.pop(i-count)
    count+=1

count=0
for i in q:
    for j in range(len(l)):
        l[j].pop(i-count)
        count+=1

for i in range(len(l)):
    for j in l[i]:
        print(j,end='')
    print()


### FIXED CODE ###

H,W = [int(zz) for zz in input().split()]
L = [list(input()) for _ in range(H)]

p = ['.']*W
while p in L:
    L.remove(p)
    H -= 1

L2 = [[0]*H for _ in range(W)]
for h in range(H):
    for w in range(W):
        L2[w][h] = L[h][w]


q = ['.']*H
while q in L2:
    L2.remove(q)
    W -= 1

ans = [[0]*W for _ in range(H)]
for h in range(H):
    for w in range(W):
        print(L2[w][h], end="")
    print()
import sys
n  = int(input())
a = list(map(int,input().split()))
ans = 1
for i in a:
  ans*=i
  if ans>int(1e18):
    print(-1)
    sys.exit()
print(ans)
    


### FIXED CODE ###

a,b=map(int,input().split())
print(a*b)
s = int(input())
j= -1
for i in range(-s, s):
    for j in range(-s, s):
    if i**5-j**5 == s:
        if i > j:
            print(i, -1) 
            break

### FIXED CODE ###

x=int(input())
for i in range(-200,200):
  for j in range(-200,200):
    if (i**5)-(j**5)==x:
      print(i,j)
      exit()
import functools
N = int(input())
K = int(input())

@functools.lru_cache(user_function)
def func(num,counter):
    remain = num%10
    quotient = num//10
    
    
    if counter == 0:
        return 1
    
    if num<10:
        if counter ==1:
            return num
        else:
            return 0

    return func(quotient,counter-1)*remain + func(quotient-1,counter-1)*(9-remain) + func(quotient,counter)

print(func(N,K))

### FIXED CODE ###

N = int(input())
K = int(input())


def func(num,counter):
    remain = num%10
    quotient = num//10
    
    
    if counter == 0:
        return 1
    
    if num<10:
        if counter ==1:
            return num
        else:
            return 0

    return func(quotient,counter-1)*remain + func(quotient-1,counter-1)*(9-remain) + func(quotient,counter)

print(func(N,K))
N, K = map(int, input().split())
X = list(map(int, input().split()))

distance = max([X[-1] - X[0], -X[i], X[-1]])
for i in range(N-K+1):
    if X[i+K-1] < 0:
        distance = min(distance, -X[i])
    elif X[i] > 0:
        distance = min(distance, X[i+K-1])
    else:
        tmp_distance = X[i+K-1]-X[i]
        tmp_distance += min(X[i+K-1], -X[i])
        distance = min(distance, tmp_distance)
print(distance)


### FIXED CODE ###

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

distance = float('inf')
for i in range(N-K+1):
    tmp_distance = abs(X[i]) + abs(X[i+K-1]-X[i])
    distance = min(distance, tmp_distance)
    tmp_distance = abs(X[i+K-1]) + abs(X[i+K-1]-X[i])
    distance = min(distance, tmp_distance)
print(distance)
from collections import deque
import sys
H, W = list(map(int, input().split()))

city = []

for _ in range(H):
    city.append(list(input()))

dist = [[float("inf") for _ in range(W)] for _ in range(H)]

dist_count = [0 for _ in range(H*W)]

queue = deque()
queue.append((0, 0))

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

while len(queue) > 0:
    now_x, now_y = queue.popleft()

    for dx_, dy_ in zip(dx, dy):

        adj_x = now_x + dx_
        adj_y = now_y + dy_

        if (not 0 <= adj_x < W) or (not 0 <= adj_y < H):
            continue

        if city[adj_y][adj_x] == "#":
            continue

        if dist[adj_y][adj_x] > H*W:
            dist[adj_y][adj_x] = dist[now_x][now_y] + 1
            queue.append((adj_x, adj_y))
            dist_count[dist[adj_y][adj_x]] += 1

#すぬけ君がどうやってもたどり着けない場合
if dist[H-1][W-1] > H*W:
    print(-1)
    sys.exit()

#すぬけ君がたどり着ける場合
max_dist = dist[H-1][W-1]

ans = 0
for i in range(1, max_dist+1):
    ans += dist[i] - 1
print(ans)


### FIXED CODE ###

from collections import deque
import sys
H, W = list(map(int, input().split()))

city = []

for _ in range(H):
    city.append(list(input()))

dist = [[float("inf") for _ in range(W)] for _ in range(H)]

dist_count = [0 for _ in range(H*W)]

queue = deque()
queue.append((0, 0))
dist[0][0] = 0

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

while len(queue) > 0:
    now_x, now_y = queue.popleft()

    for dx_, dy_ in zip(dx, dy):

        adj_x = now_x + dx_
        adj_y = now_y + dy_

        if (not 0 <= adj_x < W) or (not 0 <= adj_y < H):
            continue

        if city[adj_y][adj_x] == "#":
            continue

        if dist[adj_y][adj_x] > H*W:
            dist[adj_y][adj_x] = dist[now_y][now_x] + 1
            queue.append((adj_x, adj_y))
            dist_count[dist[adj_y][adj_x]] += 1

#すぬけ君がどうやってもたどり着けない場合
if dist[H-1][W-1] > H**W:
    print(-1)
    sys.exit()

#すぬけ君がたどり着ける場合
route_grids = dist[H-1][W-1] + 1

white_all = 0
for i in range(H):
    for j in range(W):
        if city[i][j] == ".":
            white_all += 1
ans = white_all - route_grids
print(ans)
N=int(input())
a=sorted([int(i) for i in input().split()],reverse=True)
print(sum(a[0::2]-sum(a[1::2]))

### FIXED CODE ###

N=int(input())
a=sorted([int(i) for i in input().split()],reverse=True)
print(sum(a[0::2])-sum(a[1::2]))
n=input()
m=input()
print (n*m)/2

### FIXED CODE ###

n,m=map(int,raw_input().split())
print (n-1)*(m-1)
# -*- coding: utf-8 -*-
import sys
import math
from numpy import arange

N=input()
A=[ map(int, sys.stdin.readline().split()) for _ in range(N) ]
L=[]

for x,y in A:
	if x==0 and y==0: continue
	si=float(y)/(x**2+y**2)**0.5
	L.append( (math.degrees(math.asin(si)),(x**2+y**2)**0.5) )


ans=0
for d_kouho in arange(0.0,360.1,0.01):
	ans_kouho=0
	for d,l in L:
		#print d,d-d_kouho,math.cos(math.radians(d-d_kouho)),l*math.cos(math.radians(d-d_kouho))
		ans_kouho+=l*math.cos(math.radians(d-d_kouho))
	ans=max(ans,ans_kouho)

print ans


### FIXED CODE ###

S=raw_input()
T=raw_input()

ans=0
for s,t in zip(S,T):
	if s==t: ans+=1

print ans
S = input()
flag = True

if S[0] != 'A':
    flag = False

for i in range(2, len(S)-1):
    if S[i] == 'C':
        break
else:
    flag = False

if flag:
    copy = []
    for j in range(1, len(S)):
        if j == i:
            continue
        copy += S[j]

if not(''.join(copy).islower()):
    flag = False
    
print("AC" if flag else "WA")

### FIXED CODE ###

S = input()
N = len(S)
flag = False

for i, charS in enumerate(S):
    if charS == "C" and (1 < i and i < N-1):
        flag = True
        numC = i
        break

if S[0] != "A":
    flag = False

if flag:
    text = [S[j] for j in range(N) if j != 0 and j != numC]
    text = ''.join(text)
    if not(text.islower()):
        flag = False

print("AC" if flag else "WA")
n, k = map(int, input().split())

trees = []
for _i in range(n):
  trees.append(int(input())

trees.sort()
ans = float('inf')

for i in range(n - k + 1):
  diff = trees[i + k - 1] - trees[i]
  if ans > diff:
    ans = diff

print(ans)

### FIXED CODE ###

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

trees = []
for _i in range(n):
  tree = int(input())
  trees.append(tree)

trees.sort()
ans = float('inf')

for i in range(n - k + 1):
  diff = trees[i + k - 1] - trees[i]
  if ans > diff:
    ans = diff

print(ans)
h, w, k = gets.chomp.split(" ").map(&:to_i)
map = Array.new(h)
h.times do |i|
  map[i]=gets.chomp.split("")
end

cnt = 0
ans = 0
(1<<h).times do |i|
  (1<<w).times do |j|
    cnt = 0
    h.times do |h_shift|
      w.times do |w_shift|
        next if i>>h_shift&1==1 or j>>w_shift&1==1
        if map[h_shift][w_shift] == "#"
          cnt += 1
        end
      end
    end
    if k==cnt
      ans += 1
    end
  end
end
puts ans


### FIXED CODE ###

H, W, K = map(int, input().split())

origin = [list(input()) for _ in range(H)]
ans = 0
for i in range(2**H):
    for j in range(2**W):
        cnt = 0
        for h_shift in range(H):
            for w_shift in range(W):
                if i >> h_shift & 1 == 1 or j >> w_shift & 1: #赤で塗られるマス
                    continue
                if origin[h_shift][w_shift] == "#":
                    cnt += 1
        if cnt == K:
            ans += 1
print(ans)
class UnionFind:
    def __init__(self, size):
        self.parents = list(range(size))

    def find(self, i):
        ret = i
        path = []
        while self.parents[ret]!=ret:
            path.append(ret)
            ret = self.parents[ret]
        for p in path:
            self.parents[p] = ret
        return ret

    def union(self, i, j):
        self.parents[self.find(i)] = j

n = int(input())
xys = [(*map(int, input().split()), i) for i in range(n)]

sortx = sorted(xys, key=lambda xy: xy[0])
roadsx = [(sortx[i][0]-sortx[i-1][0], sortx[i][2], sortx[i-1][2]) for i in range(1, n)]
sorty = sorted(xys, key=lambda xy: xy[1])
roadsy = [(sorty[i][1]-sorty[i-1][1], sorty[i][2], sorty[i-1][2]) for i in range(1, n)]
roads = roadsx + roadsy
roads.sort(key=lambda x:x[0])

ctr = 1
ans = 0
uf = UnionFind(n)
for road in roads:
    if ctr >= n:
        break
    cost, i1, i2 = road
    if uf.find(i1) != uf.find(i2):
        ans += cost
        ctr += 1
        uf.union(i1, i2)

print(ans)

### FIXED CODE ###

class UnionFind:
    def __init__(self, size):
        self.parents = list(range(size))

    def find(self, i):
        ret = i
        path = []
        while self.parents[ret]!=ret:
            path.append(ret)
            ret = self.parents[ret]
        for p in path:
            self.parents[p] = ret
        return ret

    def union(self, i, j):
        self.parents[self.find(i)] = j

n = int(input())
xys = [(tuple(map(int, input().split())), i) for i in range(n)]

sortx = sorted(xys, key=lambda xy: xy[0][0])
roadsx = [(sortx[i][0][0]-sortx[i-1][0][0], sortx[i][1], sortx[i-1][1]) for i in range(1, n)]
sorty = sorted(xys, key=lambda xy: xy[0][1])
roadsy = [(sorty[i][0][1]-sorty[i-1][0][1], sorty[i][1], sorty[i-1][1]) for i in range(1, n)]
roads = roadsx + roadsy
roads.sort(key=lambda x:x[0])

ctr = 1
ans = 0
uf = UnionFind(n)
for road in roads:
    if ctr >= n:
        break
    cost, i1, i2 = road
    if uf.find(i1) != uf.find(i2):
        ans += cost
        ctr += 1
        uf.union(i1, i2)

print(ans)
N = int(input())
A = [0] + list(map(int, input().split())) + [N+1]
B = list(map(int, input().split()))
B_store = B.copy()


def do(A, B):
    ans = []
    ida = 1
    res = True
    while ida < N+1:
        a = A[ida]
        c = 1
        while ida+c < N+2 and A[ida+c] == a:
            c += 1
        
        ida += c
        temp = []
        while c:
            if len(B) == 0:
                res = False
                break
            b = B.pop()
            if b != a:
                ans.append(b)
                c -= 1
            else:
                temp.append(b)
        
        B += temp
        if not res:
            break

    if res:
        return ans
    else:
        return False

ans = do(A, B)
if ans:
    print('Yes')
    print(*ans)

ans = do(A[::-1], B_store[::-1])[::-1]
if ans:
    print('Yes')
    print(*ans)

else:
    print('No')

### FIXED CODE ###

import numpy as np

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

count = [0] * (N+1)
for a, b in zip(A, B):
    count[a] += 1
    count[b] += 1

for i in range(N+1):
    if count[i] > N:
        print('No')
        quit()

diff = 0
checked = set()
ida = 0
for i, b in enumerate(B):
    if b in checked:
        continue
    checked.add(b)
    while ida < N and A[ida] <= b:
        ida += 1
    diff = max(diff, ida - i)


idx = (np.arange(N) - diff) % N
print('Yes')
print(*np.array(B)[idx])
from copy import deepcopy

n, m, q = map(int, input().split())
lr = [list(map(int, input().split())) for _ in range(m)]
pq = [list(map(int, input().split())) for _ in range(q)]

cnt = [[0] * (n + 1) for _ in range(n + 1)]
for l, r in lr:
    cnt[l][r] += 1

acc = cnt.deepcopy()
for i in range(n):
    for j in range(n):
        tmp = acc[i][j + 1] + acc[i + 1][j] - acc[i][j]
        acc[i + 1][j + 1] += tmp

for p, q in pq:
    p -= 1
    ans = acc[q][q] - acc[p][q] - acc[q][p] + acc[p][p]
    print(ans)


### FIXED CODE ###

n, m, q = map(int, input().split())
lr = [list(map(int, input().split())) for _ in range(m)]
pq = [list(map(int, input().split())) for _ in range(q)]

cnt = [[0] * (n + 1) for _ in range(n + 1)]
for l, r in lr:
    cnt[l][r] += 1

acc = [[0] * (n + 1) for _ in range(n + 1)]
for i in range(n):
    for j in range(n):
        tmp = acc[i][j + 1] + acc[i + 1][j] - acc[i][j]
        acc[i + 1][j + 1] = tmp + cnt[i + 1][j + 1]

for p, q in pq:
    p -= 1
    ans = acc[q][q] - acc[p][q] - acc[q][p] + acc[p][p]
    print(ans)
n = int(input())

for i in range(1, 10):
    if n % i == 0 and n / i < 10:
        print('Yes')
        break

else:
    print('No')

### FIXED CODE ###

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

if 0 < a < 10 and 0 < b < 10:
    print(a * b)
else:
    print(-1)
n,m,c = map(int,input().split())
b = list(map(int,input().split()))
count = 0
for i in range(n):
    A = list(map(int,input().split()))
    for j in range(m):
        ans = A[j]*b[j]
        ans = ans+ c
    if ans > 0:
        tmp += 1
print(tmp)

### FIXED CODE ###

n,m,c = map(int,input().split())
b = list(map(int,input().split()))
count = 0
for i in range(n):
    A = list(map(int,input().split()))
    ans = 0
    for j in range(m):
        ans += A[j]*b[j]
    ans = ans + c
    if ans > 0:
        count+= 1
print(count)
N = int(input())
S = input()

index = 0
counter = 0
while index < N:
    if S[index] == '#':
        offset = 1
        while index + offset < N and S[index + offset] == '#':
            offset += 1

        if index + offset >= N:
            break
        else:
            count = 1
            memory = offset
            offset += 1
            while index + offset < N and S[index + offset] == '.':
                count += 1
                offset += 1
            counter += count if count < memory else memory
            index += offset-1
    else:
        index += 1
print(str(counter))


### FIXED CODE ###

A, B, C = map(int, input().strip().split(' '))
message = ''
if A > B:
  message = 'Yes' if A > C > B else 'No'
else:
  message = 'Yes' if B > C > A else 'No'
print(message)
t = int(input())
print("Yes" if 30 <= t "No")


### FIXED CODE ###

t = int(input())
print("Yes" if 30 <= t else "No")
from itertools import product
n = int(input())
s = input()
r = []
g = []
b = []
for i in range(len(s)):
    if s[i] == 'R':
        r.append(i)
    elif s[i] == 'G':
        g.append(i)
    elif s[i] == 'B':
        b.append(i)

ng_cnt = 0
for i in range(n):
    for j in range(i+1, n):
        if s[i] == s[j]:
            continue
        else:
            k = 2 * j - i
            if k < n and s[i] != s[k] and s[j] != s[k]:
                ng_cnt += 1

print(r * g * b - ng_cnt)

### FIXED CODE ###

n = int(input())
s = input()
r = 0
g = 0
b = 0
for x in s:
    if x == 'R':
        r += 1
    elif x == 'G':
        g += 1
    elif x == 'B':
        b += 1

ng_cnt = 0
for i in range(n):
    for j in range(i+1, n):
        if s[i] == s[j]:
            continue
        else:
            k = 2 * j - i
            if k < n and s[i] != s[k] and s[j] != s[k]:
                ng_cnt += 1

print(r * g * b - ng_cnt)
text = ''
while(True):
  text += input().lower()
  if text.endswith('.'):
      break

count = [0 for i in range(26)]
for c in text:
    if c < 'a'  or c > 'z':
        continue

    count[ord(c) - ord('a')] += 1

for i, c in enumerate(count):
    print('{0} : {1}'.format(chr(i + ord('a')), c))

### FIXED CODE ###

text = ''
while(True):
    try:
        text += input().lower()
    except:
        break

count = [0 for i in range(26)]
for c in text:
    if c < 'a'  or c > 'z':
        continue

    count[ord(c) - ord('a')] += 1

for i, c in enumerate(count):
    print('{0} : {1}'.format(chr(i + ord('a')), c))
import numpy as np

n1 = int(input())
A = np.array(list(map(int, input().split())))
n2 = int(input())
q = list(map(int, input().split()))

B = []

n = n1

for r in q:
    ans = "no"
    for i in range(2 ** n):
        B = np.array(list(map(int, format(i, "b").zfill(n)))[::-1])
        C = A * B
        if sum(C) == r:
            ans = "yes"
            break
    print(ans)

### FIXED CODE ###

n1 = int(input())
A = list(map(int, input().split()))
n2 = int(input())
q = list(map(int, input().split()))

B = []
C = []
n = n1
ans = list("no" for i in range(n2))

for i in range(2 ** n):
    C0 = []
    B = list(map(int, format(i, "b").zfill(n)))[::-1]
    C0 = [ x*y for x, y in zip(A, B)]
    C.append(sum(C0))

for j, r in enumerate(q):    
    if  r in C:
        ans[j] = "yes"

print(*ans, sep="\n")
import sys
sys.setrecursionlimit(10**6)
n,m=map(int,input().split())
a=[[]for i in range(n+m)]
for i in range(n):
    s=list(map(int,input().split()))
    for j in s[1:]:
        a[i].append(j)
        a[n+j-1].append(i)
t=[False]*n
def g(x):
    t[x]=True
    for i in a[x]:
            if not t[x]:
                g(j)
g(0)
if all(t):
    print("YES")
else:
    print("NO")


### FIXED CODE ###

h,w=map(int,input().split())
q=[list(map(str,input().split()))for i in range(h)]
p=["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"]
for i in range(h):
    for j in range(w):
        if q[i][j]=="snuke":
            print(p[j]+str(i+1))
n=int(input())
l,r=list(map(int,input().split()))
kei=0
for i in range(n):
    kei += (r[i]-l[i]) + 1
print(kei)

### FIXED CODE ###

N=int(input())
ans=0
for i in range(N):
	l,r=map(int,input().split())
	ans+=r-l+1
print(ans)
N=int(input())
N_sum=[]
for A in range(1,int((N+1)/2)):
  B=N-A
  N_sum.append(sum(map(int,str(A)+str(B))))
print(min(N_sum))

### FIXED CODE ###

N=int(input())
N_sum=[]
for A in range(1,int(N/2)+1):
  B=N-A
  N_sum.append(sum(map(int,str(A)+str(B))))
print(min(N_sum))
s,t,a=input(),0,0
for c in s:
  t+=1 if c is 'B' else a+=t
print(a)

### FIXED CODE ###

s,t,a=input(),0,0
for c in s:
  if c is 'B':
    t+=1
  else:
    a+=t
print(a)
H=input()
count=0
m=1
while H:
  if H==1:
    count+=m
  else:
    m*=2
    H=int(H/2)
print(count)
    

### FIXED CODE ###

H=int(input())
n=0
while H!=1:
  H=int(H/2)
  n+=1
print(2**(n+1)-1)