#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000010;
int n, p[maxn];
vector<int> G[maxn], ans[2];
bool vis[maxn];
int main() {
  scanf("%d", &n);
  if (n & 1) {
    printf("Second\n"), fflush(stdout);
    for (int i = 1, x; i <= 2 * n; i++) {
      scanf("%d", &x);
      if (p[x]) {
        G[p[x]].push_back(i);
        G[i].push_back(p[x]);
      } else {
        p[x] = i;
      }
    }
    for (int i = 1; i <= n; i++) {
      G[i].push_back(n + i);
      G[n + i].push_back(i);
    }
    function<void(int, int)> dfs = [&](int v, int c) {
      vis[v] = 1, ans[c].push_back(v);
      for (int u : G[v])
        if (!vis[u]) dfs(u, c ^ 1);
    };
    for (int i = 1; i <= 2 * n; i++) {
      if (!vis[i]) dfs(i, 0);
    }
    int sum = 0;
    for (int x : ans[0]) {
      (sum += x) %= 2 * n;
    }
    if (sum) swap(ans[0], ans[1]);
    for (int x : ans[0]) {
      printf("%d ", x);
    }
  } else {
    printf("First\n");
    for (int i = 1; i <= 2 * n; i++) {
      printf("%d ", i <= n ? i : i - n);
    }
  }
  return 0;
}
