#include <bits/stdc++.h>
long long t[105], s[105];
long long a[105];
int getNumber(long long add) {
  if (add == 0)
    return 1;
  else {
    int res = -1;
    for (int i = 2; i <= 101; i++) {
      long long last = i * (i - 1) * (i - 2) / 6,
                next = i * (i - 1) * (i + 1) / 6;
      if ((next - last) == add) {
        res = i;
        break;
      }
    }
    return res;
  }
}
int main() {
  int n;
  scanf("%d%lld%lld", &n, &t[0], &s[0]);
  for (int i = 1; i <= n; i++) {
    if (i <= n - 3)
      printf("+ %d\n", n - i);
    else {
      if (i == n || i == n - 2)
        printf("+ 1\n");
      else
        printf("+ 2\n");
    }
    fflush(stdout);
    scanf("%lld%lld", &t[i], &s[i]);
  }
  long long add = t[n] - t[n - 1];
  a[1] = getNumber(add) - 1;
  long long add0 = s[n] - s[n - 1], add1 = s[n - 2] - s[n - 3];
  a[3] = add0 - add1 - 1;
  a[2] = add1 / (a[3] + 1);
  add = s[n - 1] - s[n - 2];
  a[4] = (add - (a[3] + 1) * (a[1] + 1)) / (a[3] + 1) - 1;
  for (int i = 5; i <= n; i++) {
    long long add = s[n - i + 2] - s[n - i + 1];
    a[i] = (add - a[i - 3] * a[i - 4] - a[i - 3] * (a[i - 1] + 1)) /
               (a[i - 1] + 1) -
           1;
  }
  a[n]++;
  printf("! ");
  for (int i = 1; i <= n; i++) printf("%lld ", a[i]);
  printf("\n");
  return 0;
}
