Ботик смотрит на строку из букв и пытается понять, где у неё «эхо»: иногда буква повторяется ровно через k
позиций, словно кто-то заранее подмигнул из будущего.
Ботик особенно любит ситуации, когда клавиша как будто «залипла» и получился длинный блок одинаковых букв. Он хочет найти букву, которая стоит в самом длинном таком блоке, внутри которого хотя бы раз случается эхо через k
.
Входные данные
В первой строке вводится строка s
(1≤|s|≤2∗105)
, состоящая из строчных латинских букв.
Во второй строке вводится число k
(1≤k<|s|)
.
Блоком одинаковых букв назовём максимальный по включению подряд идущий фрагмент строки, состоящий из одной и той же буквы.
Блок считается подходящим, если существует позиция i
внутри этого блока такая, что i+k≤|s|
и si=si+k
.
Выходные данные
Если подходящих блоков нет, выведите −1
.
Иначе среди всех подходящих блоков выберите блок максимальной длины. Если таких блоков несколько, выберите самый левый (с минимальной начальной позицией). Выведите букву этого блока
s = input()
k = int(input())
lst = list()
b = list()
for i in range(k):
mx_l = 1
cur_l = 1
mx_ch = i
for j in range(i + k, len(s), k):
if s[j] == s[j - k]:
cur_l += 1
else:
cur_l = 1
if cur_l > mx_l:
mx_l = cur_l
mx_ch = j
lst.append(mx_l)
b.append(mx_ch)
maxi = max(lst)
mini_i = 10 ** 100
for i in range(k):
if lst[i] == maxi:
if b[i] < mini_i:
mini_i = b[i]
if maxi == 1:
print(-1)
else:
print(s[mini_i - (maxi - 1) * k])