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))