#include <bits/stdc++.h>
using namespace std;
const int MAX = 5E3 + 12;
string s;
int palcen[MAX];
int tab[MAX];
int zrob(int len) {
  if (tab[len] != -1) return tab[len];
  set<int> mex;
  for (int i = 0; i < len; ++i) {
    mex.insert(zrob(max(0, i - 1)) ^ zrob(max(0, len - i - 2)));
  }
  for (int i = 0; i < MAX; ++i) {
    if (mex.find(i) == mex.end()) {
      tab[len] = i;
      return i;
    }
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  fill(tab, tab + MAX, -1);
  cin >> s;
  tab[0] = 0;
  tab[1] = 1;
  for (int i = 1; i < int((s).size()) - 1; ++i) {
    if (s[i - 1] == s[i + 1]) palcen[i] = 1;
  }
  int totalxor = 0;
  for (int i = 1; i < int((s).size()) - 1; ++i) {
    int len = palcen[i];
    while (len && palcen[i + len] == 1) ++len;
    if (!len) continue;
    if (tab[len] != -1) {
      totalxor ^= tab[len];
    } else {
      tab[len] = zrob(len);
      totalxor ^= tab[len];
    }
    i += (len - 1);
  }
  if (!totalxor) return cout << "Second\n", 0;
  for (int i = 1; i < int((s).size()) - 1; ++i) {
    int len = palcen[i];
    while (len && palcen[i + len] == 1) ++len;
    if (!len) continue;
    totalxor ^= zrob(len);
    for (int x = 0; x < len; ++x) {
      int xorek = zrob(max(0, x - 1)) ^ zrob(max(0, len - x - 2));
      if (totalxor == xorek) {
        return cout << "First\n" << i + x + 1 << "\n", 0;
      }
    }
    totalxor ^= zrob(len);
    i += (len - 1);
  }
  return 0;
}
