#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
const long long INF = 8e18;
const int maxn = 1e6 + 5;
int n;
int a[maxn];
bool vis[maxn], vis2[maxn], vis3[maxn];
vector<int> e[maxn];
vector<int> g[maxn];
int main() {
  cin >> n;
  if (n & 1) {
    cout << "Second\n";
    for (int i = 1; i <= n << 1; ++i) {
      cin >> a[i];
      e[i % n].push_back(a[i]);
      g[a[i]].push_back(i);
    }
    for (int i = 1; i <= n << 1; ++i) {
      int root = i % n;
      if (vis[root]) {
        continue;
      }
      int u = i;
      while (1) {
        vis[u % n] = vis2[u] = 1;
        int v = -1;
        for (auto x : g[a[u]]) {
          if (!vis[x % n]) {
            v = x;
          }
        }
        if (v == -1) {
          break;
        }
        if (v > n) {
          v -= n;
        } else {
          v += n;
        }
        u = v;
      }
    }
    long long ans = 0;
    for (int i = 1; i <= n << 1; ++i) {
      if (vis2[i]) {
        ans += i;
      }
    }
    if (ans & 1) {
      bool ok = 0;
      for (int i = 1; i <= n << 1; ++i) {
        if (!vis2[i]) {
          if (ok) cout << ' ';
          cout << i;
          ok = 1;
        }
      }
      cout << '\n';
    } else {
      bool ok = 0;
      for (int i = 1; i <= n << 1; ++i) {
        if (vis2[i]) {
          if (ok) cout << ' ';
          cout << i;
          ok = 1;
        }
      }
      cout << '\n';
    }
  } else {
    cout << "First\n";
    for (int i = 1; i <= n << 1; ++i) {
      cout << i % n + 1;
      if (i == n << 1) {
        cout << '\n';
      } else {
        cout << ' ';
      }
    }
  }
  return 0;
}
