#include <bits/stdc++.h>
using namespace std;
const int M = 5005;
char S[M];
int sg[M], ca[M];
int n;
int dfs(int x) {
  if (x < 0) return 0;
  int &re = sg[x];
  if (re != -1) return re;
  static int mk[M], TIM;
  for (int i = 1; i <= x; i++) dfs(i - 2), dfs(x - i - 1);
  TIM++;
  for (int i = 1; i <= x; i++) mk[dfs(i - 2) ^ dfs(x - i - 1)] = TIM;
  for (int i = 0; i < M; i++)
    if (mk[i] != TIM) return re = i;
  return 0;
}
int calc() {
  int c = 0, ans = 0;
  for (int i = 1; i <= n; i++)
    if (ca[i])
      c++;
    else
      ans ^= dfs(c), c = 0;
  return ans;
}
int main() {
  scanf("%s", S + 1);
  n = strlen(S + 1);
  for (int i = 2; i < n; i++)
    if (S[i - 1] == S[i + 1]) ca[i] = 1;
  memset(sg, -1, sizeof(sg));
  sg[0] = 0, sg[1] = 1;
  if (calc()) {
    puts("First");
    for (int i = 1, k1, k2, k3; i <= n; i++)
      if (ca[i]) {
        k1 = ca[i - 1], k2 = ca[i], k3 = ca[i + 1];
        ca[i - 1] = 0, ca[i] = 0, ca[i + 1] = 0;
        if (!calc()) {
          printf("%d\n", i);
          break;
        }
        ca[i - 1] = k1, ca[i] = k2, ca[i + 1] = k3;
      }
  } else
    puts("Second");
  return 0;
}
