#flush=True N=int(input()) D=dict() alp="abcdefghijklmnopqrstuvwxyz" skip=set() ans=["." for i in range(N)] print("?","a"*N,flush=True) cnt_a=int(input()) print("?","b"*N,flush=True) cnt_b=int(input()) letters=set() for i in range(26): print("?",alp[i]*N,flush=True) n=int(input()) if n>0: letters.add(alp[i]) for i in range(26): for j in range(N): if alp[i] not in letters or j in skip: continue if i==0: L=["b" for k in range(N)] else: L=["a" for k in range(N)] L[j]=alp[i] print("?","".join(L),flush=True) n=int(input()) if (i==0 and n==cnt_b+1) or (i>0 and n==cnt_a+1): ans[j]=alp[i] skip.add(j) print("!","".join(ans),flush=True)