#include <bits/stdc++.h>
using namespace std;
int g[5050];
bool ok[5050];
void init() {
  g[0] = 0;
  for (int i = (int)(1); i < (int)(5050); i++) {
    bool used[5050] = {0};
    for (int j = 0; j < (int)(i); j++) {
      int x = max(0, j - 1);
      int y = max(0, i - j - 2);
      int z = g[x] ^ g[y];
      if (z < 5050) used[z] = true;
    }
    while (used[g[i]]) ++g[i];
  }
}
int main() {
  string t;
  cin >> t;
  init();
  for (int i = (int)(1); i < (int)(t.length() - 1); i++)
    if (t[i - 1] == t[i + 1]) ok[i] = true;
  vector<int> sz, pos;
  for (int i = 0; i < (int)t.length(); i++) {
    if (!ok[i]) continue;
    int j = i;
    while (j < (int)t.length() && ok[j]) ++j;
    sz.push_back(j - i);
    pos.push_back(i);
    i = --j;
  }
  int xr = 0;
  for (int i = 0; i < (int)(sz.size()); i++) xr ^= g[sz[i]];
  if (xr == 0) {
    puts("Second");
  } else {
    puts("First");
    for (int i = 0; i < (int)(sz.size()); i++) {
      int xrt = xr ^ g[sz[i]];
      for (int j = 0; j < (int)(sz[i]); j++) {
        int x = max(0, j - 1);
        int y = max(0, sz[i] - j - 2);
        if ((xrt ^ g[x] ^ g[y]) == 0) {
          cout << pos[i] + j + 1 << endl;
          return 0;
        }
      }
    }
  }
  return 0;
}
