#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int n, cnt, sum, ans;
int lst[N], vis[N], tag[N], head[N], to[N << 1], nxt[N << 1];
inline void add(int u, int v) {
  to[++cnt] = v, nxt[cnt] = head[u], head[u] = cnt;
  to[++cnt] = u, nxt[cnt] = head[v], head[v] = cnt;
}
void dfs(int u, int tp) {
  vis[u] = 1, tag[u] = tp;
  if (!tag[u]) sum = (sum + u) % (2 * n);
  for (int i = head[u]; i; i = nxt[i])
    if (!vis[to[i]]) dfs(to[i], tp ^ 1);
}
int main() {
  scanf("%d", &n);
  if (n & 1) {
    puts("Second");
    fflush(stdout);
    for (int i = 1; i <= 2 * n; i++) {
      int x;
      scanf("%d", &x);
      if (!lst[x])
        lst[x] = i;
      else
        add(lst[x], i);
      if (i <= n) add(i, i + n);
    }
    for (int i = 1; i <= 2 * n; i++)
      if (!vis[i]) dfs(i, 0);
    if (sum == 0) {
      for (int i = 1; i <= 2 * n; i++)
        if (!tag[i]) printf("%d ", i);
    } else {
      for (int i = 1; i <= 2 * n; i++)
        if (tag[i]) printf("%d ", i);
    }
    fflush(stdout);
  } else {
    puts("First");
    fflush(stdout);
    for (int i = 1; i <= n; i++) printf("%d ", i);
    for (int i = n + 1; i <= 2 * n; i++) printf("%d ", i - n);
    fflush(stdout);
  }
}
