while True:
    try:
        s=input()
        n=int(input())
        res=0
        index=0
        for i in range(0,len(s)-n+1):
            GC_Ratio=s.count('G',i,i+n)+s.count('C',i,i+n)
            if GC_Ratio>res:
                res=GC_Ratio
                index=i
        print(s[index:index+n])
    except:
        break

#为什么只通过20%,问题在哪?
while True:
    try:
        s=input()
        n=int(input())
        res=0
        index=0
        for i in range(0,len(s)-n+1):
            temp=[]
            for j in range(i,i+n):
                temp.append(s[j])
            GC_Ratio=temp.count('G')+temp.count('C')
            if GC_Ratio>res:
                res=GC_Ratio
                index=i
        print(s[index:index+n])#问题在这...太粗心了,之前写成print(s[index:n])了
    except:
        break

#include <iostream>
#include <string>
using namespace std;
int main(){
    string s;
    int n;
    while(cin >> s >> n){
            int res=0,index=0;
        for(int i=0;i<=s.size()-n;i++){
            int GC_Ratio=0;
            for(int j=i;j<i+n;j++){
                if(s[j]=='G' || s[j]=='C')
                    GC_Ratio++;
            }
            if(GC_Ratio>res){
                res=GC_Ratio;
                index=i;
            }
        }
        cout << s.substr(index,n) << endl;//substr()函数第二个参数指的是子串的长度
    }
    return 0;
}