#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> ll;
typedef vector<int> vl;
typedef vector<ll> vll;
typedef vector<vl> vvl;
template <typename T>
ostream &operator<<(ostream &o, vector<T> v) {
  if (v.size() > 0) o << v[0];
  for (unsigned i = 1; i < v.size(); i++) o << " " << v[i];
  return o << "\n";
}
template <typename U, typename V>
ostream &operator<<(ostream &o, pair<U, V> p) {
  return o << "(" << p.first << ", " << p.second << ") ";
}
template <typename T>
istream &operator>>(istream &in, vector<T> &v) {
  for (unsigned i = 0; i < v.size(); i++) in >> v[i];
  return in;
}
template <typename T>
istream &operator>>(istream &in, pair<T, T> &p) {
  in >> p.first;
  in >> p.second;
  return in;
}
vl G(5003, 0);
string a;
bool check() {
  int ans = 0;
  int add = 0;
  for (int i = (1); i < (int)a.length() - 1; i++) {
    if (a[i - 1] == a[i + 1] and a[i] != '$')
      add++;
    else {
      ans ^= G[add];
      add = 0;
    }
  }
  return ans == 0;
}
int main() {
  std::ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cout.precision(20);
  G[0] = 0;
  G[1] = 1;
  for (int i = (2); i < (int)5003; i++) {
    set<int> temp;
    for (int(j) = 0; (j) < (i); (j)++) {
      if (j == 0 or j == i - 1)
        temp.insert(G[i - 2]);
      else
        temp.insert(G[j - 1] ^ G[i - j - 2]);
    }
    while (temp.find(G[i]) != temp.end()) G[i]++;
  }
  cin >> a;
  a += "#";
  for (int i = (1); i < (int)a.length() - 1; i++)
    if (a[i - 1] == a[i + 1]) {
      char c = a[i];
      a[i] = '$';
      if (check()) {
        cout << "First"
             << "\n";
        cout << i + 1 << "\n";
        return 0;
      }
      a[i] = c;
    }
  cout << "Second";
  return 0;
}
