#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 99;
long long ans;
int n, mark[N], vis[N];
vector<int> v[N];
set<pair<int, pair<int, int> > > g[N];
void dfs(int x) {
  vis[x] = 1;
  if (int(g[x].size())) {
    pair<int, pair<int, int> > u = *g[x].begin();
    g[x].erase(u);
    g[u.first].erase(make_pair(x, make_pair(u.second.second, u.second.first)));
    mark[u.second.second] = 1;
    dfs(u.first);
  }
}
int main() {
  cin >> n;
  if (n % 2 == 0) {
    cout << "First" << endl;
    for (int i = 1; i < n + 1; i++) cout << i << " ";
    for (int i = 1; i < n + 1; i++) cout << i << " ";
    cout << endl;
    return 0;
  }
  cout << "Second" << endl;
  for (int i = 1; i < 2 * n + 1; i++) {
    int x;
    scanf("%d", &x);
    ;
    v[x].push_back(i);
  }
  for (int i = 1; i < n + 1; i++) {
    g[v[i][0] % n].insert(make_pair(v[i][1] % n, make_pair(v[i][0], v[i][1])));
    g[v[i][1] % n].insert(make_pair(v[i][0] % n, make_pair(v[i][1], v[i][0])));
  }
  for (int i = 0; i < n; i++)
    if (!vis[i]) dfs(i);
  for (int i = 1; i < 2 * n + 1; i++)
    if (mark[i]) ans += i;
  if (ans % (2 * n) == 0) {
    for (int i = 1; i < 2 * n + 1; i++)
      if (mark[i]) cout << i << " ";
  } else
    for (int i = 1; i < 2 * n + 1; i++)
      if (!mark[i]) cout << i << " ";
  cout << endl;
}
