#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false), cin.tie(NULL);
  int n;
  cin >> n;
  if (n % 2 == 0) {
    cout << "First" << endl;
    for (int i = 1; i <= n; ++i) cout << i << " ";
    for (int i = 1; i <= n; ++i) cout << i << " ";
    cout << '\n';
  } else {
    cout << "Second" << endl;
    vector<vector<int>> pairs(n);
    vector<vector<pair<int, int>>> n_to_pair(n);
    vector<vector<int>> pairs_copy(n);
    for (int i = 1; i <= 2 * n; ++i) {
      int p;
      cin >> p;
      --p;
      pairs[p].push_back(i);
      pairs_copy[p].push_back(i);
      n_to_pair[i % n].emplace_back(p, i);
    }
    set<int> satisfied;
    vector<int> res(n);
    function<void(int)> pick = [&](int choice) {
      if (satisfied.count(choice)) return;
      pair<int, int> p = n_to_pair[choice].back();
      n_to_pair[choice].pop_back();
      res[p.first] = p.second;
      satisfied.insert(choice);
      pairs[p.first].erase(
          find(pairs[p.first].begin(), pairs[p.first].end(), p.second));
      if (!pairs[p.first].empty()) {
        int other = pairs[p.first][0] % n;
        if (other == choice) return;
        pairs[p.first].pop_back();
        for (int i = 0; i < n_to_pair[other].size(); ++i) {
          if (n_to_pair[other][i].first == p.first) {
            n_to_pair[other].erase(n_to_pair[other].begin() + i);
            break;
          }
        }
        pick(other);
      }
    };
    for (int i = 0; i < n; ++i) {
      pick(i);
    }
    int f = 0;
    for (auto i : res) {
      f += i;
      f %= 2 * n;
    }
    if (f != 0) {
      for (int i = 0; i < n; ++i) {
        res[i] ^= pairs_copy[i][0] ^ pairs_copy[i][1];
      }
    }
    for (auto i : res) cout << i << " ";
    cout << endl;
  }
}
