# HJ63 DNA序列 - 你的变量风格+避坑注释版
# 题目:找出GC比例最高的、长度为n的子串,多个时输出第一个
str1 = input()
num1 = int(input())
# 步骤1:把所有长度为num1的子串都取出来,存到列表里
list1 = []
for i in range(0, len(str1)-num1+1):
list1.append(str1[i:i+num1])
# ------------------- 关键:踩坑点1 -------------------
# 坑:之前把record写在for循环里面,每次都重置为0,导致和0比而不是和全局最大值比
# 正确做法:把记录最大值的变量写在循环外面,初始化-1(因为GC数不可能小于0)
max_count = -1 # 记录全局最高的GC数量
best_str = "" # 记录当前GC最高的子串
# 步骤2:遍历所有子串,统计GC数并更新最大值
for s in list1:
count = 0 # 每个子串单独计数,循环内重置是对的
for j in s:
if j == "C" or j == "G":
count += 1
# ------------------- 关键:踩坑点2 -------------------
# 坑:之前用字典存{GC数: 子串},当多个子串GC数相同时,后面的会覆盖前面的
# 坑:而且取结果时用reversed,顺序不可控,容易拿错
# 正确做法:不用字典,只用两个变量记录最大值和对应的子串
# 只在当前count>全局最大值时才更新,这样只会保留第一个出现的最大值
if count > max_count:
max_count = count
best_str = s
# 步骤3:直接输出结果,没有多余操作
print(best_str)