#include <bits/stdc++.h>
using namespace std;
const int N = 5010;
int n, a[N], t[N], p[N], q[N], posp[N], sum;
void solve(int i, int j) {
  int k = posp[t[i] ^ q[i]];
  if (k == i) {
    return;
  }
  if (k == j) {
    swap(posp[p[i]], posp[p[j]]), swap(p[i], p[j]);
    return;
  }
  swap(posp[p[i]], posp[p[k]]), swap(p[i], p[k]), swap(q[j], q[k]);
  solve(k, j);
}
int main() {
  scanf("%d", &n);
  n = 1 << n;
  for (int i = 0; i < n; ++i) {
    scanf("%d", a + i);
    p[i] = q[i] = posp[i] = i;
    sum ^= a[i];
  }
  if (sum) {
    puts("Fou");
    return 0;
  }
  for (int i = 0; i < n; ++i) {
    if (a[i] != t[i]) {
      int dt = a[i] ^ t[i];
      t[i] ^= dt, t[i + 1] ^= dt;
      solve(i, i + 1);
    }
  }
  puts("Shi");
  for (int i = 0; i < n; ++i) {
    printf("%d ", p[i]);
  }
  puts("");
  for (int i = 0; i < n; ++i) {
    printf("%d ", q[i]);
  }
  puts("");
}
