#include <bits/stdc++.h>
using namespace std;
namespace Qza {
int p[1005], q[1005], c[1005], a[1005];
long long Mod(long long a, long long p) { return a < p ? a : a - p; }
long long max(long long a, long long b) { return a < b ? b : a; }
long long min(long long a, long long b) { return a < b ? a : b; }
void init(int n) {
  c[0] = c[1] = 0;
  for (int i = 2; i <= n; ++i) c[i] = i * (i - 1) / 2;
}
int read() {
  char ch = getchar();
  int x = 0, f = 1;
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') x = (x * 10) + (ch ^ 48), ch = getchar();
  return x * f;
}
long long readll() {
  char ch = getchar();
  long long x = 0, f = 1;
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') x = (x * 10) + (ch ^ 48), ch = getchar();
  return x * f;
}
void main() {
  int n, p4, q4, d1, d2, sum, lp, lq, np, nq;
  scanf("%d", &n);
  scanf("%d %d", &lp, &lq);
  init(102);
  for (int i = 1; i <= 3; ++i) {
    printf("+ %d\n", i);
    fflush(stdout);
    scanf("%d %d", &np, &nq);
    p[i] = np - lp;
    q[i] = nq - lq;
    lp = np;
    lq = nq;
    for (int j = 2; j <= n; ++j)
      if (p[i] == c[j]) a[i] = j;
  }
  printf("+ 1\n");
  fflush(stdout);
  scanf("%d %d", &np, &nq);
  p4 = np - lp;
  q4 = nq - lq;
  lp = np;
  lq = nq;
  for (int i = 1; i <= n + 1; ++i)
    if (p4 == c[i]) {
      a[1] = i - 1;
      break;
    }
  for (int i = 2; i <= n; ++i)
    if (p[2] == c[i]) {
      a[2] = i;
      break;
    }
  for (int i = 2; i <= n; ++i)
    if (p[3] == c[i]) {
      a[3] = i;
      break;
    }
  d1 = q[1];
  d2 = q4;
  sum = d2 - d1 - 1;
  if (a[2] && !a[3])
    a[3] = sum - a[2];
  else if (a[3] && !a[2])
    a[2] = sum - a[3];
  else if (!a[2] && !a[3]) {
    if (sum == 0)
      a[2] = a[3] = 0;
    else if (sum == 2)
      a[2] = a[3] = 1;
    else if (sum == 1) {
      if (q[2] == 0)
        a[3] = 0, a[2] = 1;
      else
        a[2] = 0, a[3] = 1;
    }
  }
  for (int i = 4; i < n; ++i) {
    printf("+ %d\n", i);
    fflush(stdout);
    scanf("%d %d", &np, &nq);
    p[i] = np - lp;
    q[i] = nq - lq;
    lp = np;
    lq = nq;
    for (int j = 2; j <= n; ++j)
      if (p[i] == c[j]) {
        a[i] = j;
        break;
      }
  }
  for (int i = 3; i < n; ++i) {
    if (!a[i + 1]) {
      if (q[i] == (a[i - 2] + 1) * (a[i - 1] + 1))
        a[i + 1] = 0;
      else
        a[i + 1] = 1;
    }
  }
  a[n] = (q[n - 1] - (a[n - 3] + 1) * (a[n - 2] + 1)) / (a[n - 2] + 1);
  printf("!");
  for (int i = 1; i <= n; ++i) printf(" %d", a[i]);
}
}  // namespace Qza
int main() {
  Qza::main();
  return 0;
}
