#include <bits/stdc++.h>
using namespace std;
template <typename T>
istream& operator>>(istream& is, vector<T>& v) {
  for (auto& x : v) {
    is >> x;
  }
  return is;
}
template <typename T>
ostream& operator<<(ostream& os, const vector<T>& v) {
  for (auto& x : v) {
    os << x << " ";
  }
  os << "\n";
  return os;
}
void dfs(int v, const vector<vector<int>>& e, vector<int>& used,
         vector<int>& ord) {
  used[v] = 1;
  ord.push_back(v);
  for (auto u : e[v]) {
    if (!used[u]) dfs(u, e, used, ord);
  }
}
int main() {
  int n;
  scanf("%d", &n);
  if (n % 2 == 0) {
    printf("First\n");
    fflush(stdout);
    for (int i = 0; i < n; ++i) {
      printf("%d ", i + 1);
    }
    for (int i = 0; i < n; ++i) {
      printf("%d ", i + 1);
    }
    fflush(stdout);
  } else {
    printf("Second\n");
    fflush(stdout);
    vector<int> p(2 * n);
    for (auto& x : p) {
      scanf("%d", &x);
    }
    vector<vector<int>> e(2 * n);
    for (int i = 0; i < n; ++i) {
      {
        int u = i, v = p[i] - 1 + n;
        e[u].push_back(v);
        e[v].push_back(u);
      }
      {
        int u = i, v = p[n + i] - 1 + n;
        e[u].push_back(v);
        e[v].push_back(u);
      }
    }
    vector<int> mt(n, -1);
    vector<int> used(2 * n, 0);
    vector<int> ord;
    for (int i = 0; i < n; ++i) {
      if (!used[i]) dfs(i, e, used, ord);
    }
    for (int i = 0; i < ord.size(); i += 2) {
      mt[ord[i + 1] - n] = ord[i];
    }
    vector<vector<int>> num_from_p(n);
    for (int i = 0; i < 2 * n; ++i) {
      num_from_p[p[i] - 1].push_back(i);
    }
    vector<int> ans1, ans2;
    for (int i = 0; i < n; ++i) {
      if (num_from_p[i][0] % n == mt[i]) {
        ans1.push_back(num_from_p[i][0] + 1);
        ans2.push_back(num_from_p[i][1] + 1);
      } else {
        ans1.push_back(num_from_p[i][1] + 1);
        ans2.push_back(num_from_p[i][0] + 1);
      }
    }
    int64_t sum = 0;
    for (auto x : ans1) sum += x;
    if (sum % (2 * n) == 0) {
      for (auto x : ans1) {
        printf("%d ", x);
      }
    } else {
      for (auto x : ans2) {
        printf("%d ", x);
      }
    }
    fflush(stdout);
  }
}
