#include <bits/stdc++.h>
using namespace std;
int n, p[1000010], last[1000010];
vector<int> e[1000010];
bool v[1000010];
vector<int> c[2];
int C[2];
void dfs(int x, int col) {
  v[x] = true;
  c[col].push_back(x);
  C[col] = (C[col] + x) % (2 * n);
  for (int y : e[x])
    if (!v[y]) dfs(y, col ^ 1);
}
int main() {
  scanf("%d", &n);
  if (n % 2 == 0) {
    printf("First\n");
    fflush(stdout);
    for (int i = 1; i <= 2 * n; i++) printf("%d ", i <= n ? i : i - n);
    fflush(stdout);
  } else {
    printf("Second\n");
    fflush(stdout);
    for (int i = 1; i <= 2 * n; i++) {
      scanf("%d", &p[i]);
      if (last[p[i]])
        e[i].push_back(last[p[i]]), e[last[p[i]]].push_back(i);
      else
        last[p[i]] = i;
      if (i <= n) e[i].push_back(i + n), e[i + n].push_back(i);
    }
    for (int i = 1; i <= 2 * n; i++)
      if (!v[i]) dfs(i, 0);
    for (int i = 0; i < 2; i++)
      if (!C[i]) {
        for (int j : c[i]) printf("%d ", j);
      }
    fflush(stdout);
  }
}
