#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e9 + 7;
const double PI = acos(-1);
const long long MOD = 4e9 + 7;
using namespace std;
int n;
void solvepar() {
  cout << "First" << endl;
  for (long long i = 1; i < 2 * n + 1; i++) {
    if (i <= n)
      cout << i << " ";
    else
      cout << i - n << " ";
  }
  cout << endl;
}
int v[1020000], mapa[1020000];
vector<int> g[1020000];
bool vis[1020000];
set<int> res;
long long dfs(int u, int cual) {
  if (cual) res.insert(u);
  long long tot = (cual ? u : 0);
  vis[u] = 1;
  for (int w : g[u]) {
    if (vis[w]) continue;
    tot += dfs(w, cual ^ 1), tot %= (2 * n);
  }
  return tot % (2 * n);
}
void solveimpar() {
  cout << "Second" << endl;
  for (long long i = 1; i < 2 * n + 1; i++) {
    cin >> v[i];
    if (mapa[v[i]] != 0) {
      g[i].push_back(mapa[v[i]]);
      g[mapa[v[i]]].push_back(i);
    }
    g[i].push_back(i + ((i <= n) ? n : -n));
    mapa[v[i]] = i;
  }
  long long tot = 0;
  for (long long i = 1; i < 2 * n + 1; i++) {
    if (!vis[i]) tot += dfs(i, 1), tot %= (2 * n);
  }
  set<int> res2;
  if (tot % (2 * n) != 0) {
    for (long long i = 1; i < 2 * n + 1; i++) {
      if (res.find(i) == res.end()) res2.insert(i);
    }
    res = res2;
  }
  for (int first : res) cout << first << " ";
  cout << endl;
}
int main() {
  cin >> n;
  if (n % 2 == 0)
    solvepar();
  else
    solveimpar();
  int pos;
  cin >> pos;
}
