#include <bits/stdc++.h>
using namespace std;
int N;
vector<int> edges[500005];
vector<int> adj[1000005];
vector<int> ans[5];
int sum[5];
bool vis[1000005];
void make_edges(int u, int v) {
  adj[u].emplace_back(v);
  adj[v].emplace_back(u);
}
void DFS(int u, int p = 0) {
  ans[p].emplace_back(u);
  sum[p] = (sum[p] + u) % (N << 1);
  vis[u] = 1;
  for (int v : adj[u]) {
    if (!vis[v]) DFS(v, p ^ 1);
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin >> N;
  if (N & 1) {
    cout << "Second" << endl;
    int id;
    for (int i = 1; i <= N; i++) {
      cin >> id;
      edges[id].emplace_back(i);
    }
    for (int i = 1; i <= N; i++) {
      cin >> id;
      edges[id].emplace_back(i + N);
    }
    for (int i = 1; i <= N; i++) {
      make_edges(edges[i][0], edges[i][1]);
      make_edges(i, i + N);
    }
    for (int i = 1; i <= N; i++) {
      if (!vis[i]) {
        DFS(i);
      }
    }
    if (sum[0] != 0) {
      for (auto i : ans[1]) cout << i << " ";
      cout << "\n";
      ;
    } else {
      for (auto i : ans[0]) cout << i << " ";
      cout << "\n";
      ;
    }
  } else {
    cout << "First\n";
    for (int i = 1; i <= N; i++) cout << i << " ";
    for (int i = 1; i <= N; i++) cout << i << " ";
    cout << "\n";
  }
}
