#include <bits/stdc++.h>
std::pair<int, int> a[524288], l[524288];
int f[524288];
int main() {
  int n;
  scanf("%d", &n);
  if (n % 2 == 0) {
    puts("First");
    for (int i = 0; i < n * 2; ++i) printf(" %d" + !i, i % n + 1);
    printf("\n");
    return 0;
  }
  puts("Second");
  fflush(stdout);
  std::fill(a, a + n, std::pair<int, int>(-1, -1));
  std::fill(l, l + n, std::pair<int, int>(-1, -1));
  for (int i = 0; i < n * 2; ++i) {
    int k, v = i % n;
    scanf("%d", &k), --k;
    (a[k].first != -1 ? a[k].second : a[k].first) = i;
    (l[v].first != -1 ? l[v].second : l[v].first) = k;
  }
  for (int i = 0; i < n; ++i)
    if (!f[i]) {
      int u = i, v = a[u].first % n;
      do {
        if (a[u].first % n != v) std::swap(a[u].first, a[u].second);
        f[u] = 1;
        u = l[v].first == u ? l[v].second : l[v].first;
        v = a[u].first % n == v ? a[u].second % n : a[u].first % n;
      } while (u != i);
    }
  int cnt = 0;
  for (int i = 0; i < n; ++i)
    if (a[i].first >= n) ++cnt;
  if (cnt & 1 ^ (n + 1) / 2 & 1)
    for (int i = 0; i < n; ++i) std::swap(a[i].first, a[i].second);
  for (int i = 0; i < n; ++i) printf(" %d" + !i, a[i].first + 1);
  printf("\n");
  return 0;
}
