import sys, time, random
from collections import deque, Counter, defaultdict
input = lambda: sys.stdin.readline().rstrip()
ii = lambda: int(input())
mi = lambda: map(int, input().split())
li = lambda: list(mi())
inf = 2 ** 61 - 1
mod = 998244353
import string

n = ii()

def ask(T):
    print("?", T)
    sys.stdout.flush()
    return ii()
def ans(T):
    print("!", T)
    sys.stdout.flush()
    exit()
X = []
for i in range(n):
    S = [0] * 25
    s = ['a'] * n
    for j in range(25):
        s[i] = string.ascii_lowercase[j]
        
        S[j] = ask(''.join(s))
    if min(S) == max(S):
        X.append('z')
    else:
        if S.count(min(S)) == 1:
            X.append(string.ascii_lowercase[S.index(min(S))])
        elif S.count(max(S)) == 1:
            X.append(string.ascii_lowercase[S.index(max(S))])

ans(''.join(X))