#include <bits/stdc++.h>
using namespace std;
void run();
int main() {
  ios::sync_with_stdio(0);
  run();
}
int n;
int v[5001];
char s[5001];
int grundy[5001];
void run() {
  cin >> s;
  n = strlen(s);
  vector<int> blob;
  for (int i = 0; i < n; i++)
    if (0 < i and i + 1 < n and s[i - 1] == s[i + 1])
      blob.back()++;
    else if (blob.empty() or blob.back())
      blob.push_back(0);
  if (not blob.empty() and blob.back() == 0) blob.pop_back();
  static int can[5001];
  for (int i = 1; i <= 5000; i++) {
    for (int j = 0; j < i; j++) {
      can[grundy[max(0, j - 1)] ^ grundy[max(0, i - j - 2)]] = i;
    }
    while (can[grundy[i]] == i) ++grundy[i];
  }
  int good = 0;
  for (int i : blob) good ^= grundy[i];
  cout << (good ? "First" : "Second") << endl;
  if (good) {
    int id = 0;
    for (int i = 1, x = 0; i + 1 < n; ++i, ++x) {
      if (s[i - 1] == s[i + 1]) {
        if (i > 1 and s[i - 2] != s[i + 0]) ++id, x = 0;
        int val = good ^ grundy[blob[id]];
        if (val == (grundy[max(0, x - 1)] ^ grundy[max(0, blob[id] - x - 2)])) {
          cout << i + 1 << endl;
          return;
        }
      }
    }
  }
}
