#include <bits/stdc++.h>
#pragma GCC target("avx2")
#pragma GCC optimization("O3")
#pragma GCC optimization("unroll-loops")
using namespace std;
template <class T1, class T2>
ostream &operator<<(ostream &os, const pair<T1, T2> &p) {
  os << "{" << p.first << "," << p.second << "}";
  return os;
}
const int N = 5e3 + 5;
const int oo = 1e9 + 7;
bool mex[N];
int g[N];
int32_t main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  string s;
  cin >> s;
  int n = s.size();
  for (int i = 1; i <= n; i++) {
    memset(mex, 0, sizeof mex);
    for (int j = 1; j <= i; j++) {
      int l = max(0, j - 2);
      int r = max(0, i - j - 1);
      int sum = g[l] ^ g[r];
      if (sum <= n) mex[sum] = 1;
    }
    while (mex[g[i]]) g[i]++;
  }
  int sum = 0;
  memset(mex, 0, sizeof mex);
  for (int i = 0; i < n; i++) {
    if (i - 1 >= 0 and i + 1 < n and s[i - 1] == s[i + 1]) mex[i] = 1;
  }
  for (int i = 0; i < n; i++) {
    if (mex[i]) {
      int j = i;
      while (mex[j]) j++;
      j--;
      int len = j - i + 1;
      sum ^= g[len];
      cerr << "line " << 58 << " : "
           << "len"
           << " --> " << (len) << endl;
      i = j;
    }
  }
  if (sum) {
    cout << "First\n";
    for (int i = 0; i < n; i++) {
      if (mex[i]) {
        int j = i;
        while (mex[j]) j++;
        j--;
        int len = j - i + 1;
        int sum_ = sum ^ g[len];
        for (int k = 1; k <= len; k++) {
          int l = max(0, k - 2);
          int r = max(0, len - k - 1);
          if (!(g[l] ^ g[r] ^ sum_)) {
            cout << i + k << "\n";
            return 0;
          }
        }
        i = j;
      }
    }
  } else
    cout << "Second\n";
}
