#include <bits/stdc++.h>
using namespace std;
int n;
string s;
vector<string> S[101], T[101];
char ans[101];
int A[101], B[101];
void init() {
  for (int i = 0; i < 101; i++) {
    A[i] = B[i] = 0;
  }
}
void f(int *A, string s) {
  for (int i = 0; i < s.size(); i++) {
    A[s[i] - 'a']++;
  }
}
void solve(int n) {
  cout << "? 1 " << n << "\n";
  string s;
  for (int i = 0; i < n * (n + 1) >> 1; i++) {
    cin >> s;
    S[s.size()].push_back(s);
  }
  cout << "? 2 " << n << "\n";
  for (int i = 0; i < n * (n - 1) >> 1; i++) {
    cin >> s;
    T[s.size()].push_back(s);
  }
  for (int i = 1; i <= n; i++) {
    init();
    for (string s : S[i]) {
      f(A, s);
    }
    for (string s : T[i]) {
      f(B, s);
    }
    for (int j = 0; j < 26; j++) {
      A[j] -= B[j];
    }
    for (int j = 1; j < i; j++) {
      A[ans[j] - 'a']--;
    }
    for (int j = 0; j < 26; j++)
      if (A[j]) ans[i] = 'a' + j;
  }
}
int main() {
  cin >> n;
  if (n == 1) {
    cout << "? 1 1\n";
    char c;
    cin >> c;
    cout << "! " << c << "\n";
    return 0;
  }
  solve(n);
  cout << "! ";
  for (int i = 1; i <= n; i++) {
    cout << ans[i];
  }
}
