#include <bits/stdc++.h>
const int maxn = 5005;
const int N = 5005;
using namespace std;
int g[maxn];
bool mark[maxn];
int main() {
  g[0] = 0;
  g[1] = 1;
  for (int i = 2; i < maxn; i++) {
    fill(mark, mark + maxn, false);
    mark[g[i - 2]] = true;
    for (int j = 0; j <= i - 3; j++)
      if ((g[i] ^ g[i - j - 3]) < maxn) mark[(g[j] ^ g[i - j - 3])] = true;
    for (int j = 0;; j++)
      if (!mark[j]) {
        g[i] = j;
        break;
      }
  }
  string s;
  cin >> s;
  int n = s.length();
  vector<pair<int, int> > v;
  int G = 0;
  int i = 1;
  while (i + 1 < n) {
    int sz = 0, st = i;
    while (i + 1 < n && s[i - 1] == s[i + 1]) {
      i++;
      sz++;
    }
    if (sz) {
      v.push_back({sz, st});
      G ^= g[sz];
    }
    i++;
  }
  if (G) {
    cout << "First" << endl;
    for (int i = 0; i < v.size(); i++) {
      int sz = v[i].first, st = v[i].second;
      int want = (g[sz] ^ G);
      if ((sz == 1 && want == g[0]) || g[sz - 2] == want)
        return (cout << st + 1 << endl), 0;
      else {
        for (int j = 0; j <= sz - 3; j++)
          if ((g[j] ^ g[sz - j - 3]) == want) {
            cout << st + 1 + j + 1 << endl;
            return 0;
          }
      }
    }
  }
  cout << "Second" << endl;
  return 0;
}
