#include <bits/stdc++.h>
using namespace std;
bool isPrime(long long int n) {
  if (n <= 1) return false;
  if (n <= 3) return true;
  if (n % 2 == 0 || n % 3 == 0) return false;
  for (long long int i = 5; i * i <= n; i = i + 6)
    if (n % i == 0 || n % (i + 2) == 0) return false;
  return true;
}
unsigned int countBits(unsigned int n) {
  unsigned int count = 0;
  while (n) {
    count++;
    n >>= 1;
  }
  return count;
}
bool isPerfectSquare(long double x) {
  long double sr = sqrt(x);
  return ((sr - floor(sr)) == 0);
}
int subArraySum(int arr[], int n) {
  int curr_sum = arr[0], start = 0, i, count = 0, len;
  len = 0;
  for (i = 1; i <= n; i++) {
    len++;
    while (curr_sum > len && start < i - 1) {
      curr_sum = curr_sum - arr[start];
      start++;
      len++;
    }
    if (curr_sum == len) {
      count++;
    }
    if (i < n && i > 0) {
      curr_sum = curr_sum + arr[i];
    }
  }
  return count;
}
void printDigit(int N, vector<long long int>& arr) {
  int i = 0;
  int j, r;
  while (N != 0) {
    r = N % 10;
    arr.push_back(r);
    i++;
    N = N / 10;
  }
}
void solver(vector<long long int> arr, long long int start,
            long long int& count, long long int a1) {
  long long int sum = 0;
  for (long long int i = start + 1; i < arr.size() - 1; i++) {
    sum += arr[i];
    if (sum == a1) count++;
  }
}
bool checkDivisibility(long long int n, int digit) {
  if (digit == 0) return true;
  return (digit != 0 && n % digit == 0);
}
bool allDigitsDivide(long long int n) {
  long long int temp = n;
  while (temp > 0) {
    int digit = temp % 10;
    if (!(checkDivisibility(n, digit))) return false;
    temp /= 10;
  }
  return true;
}
bool isPrime(int n) {
  if (n <= 1) return false;
  if (n <= 3) return true;
  if (n % 2 == 0 || n % 3 == 0) return false;
  for (int i = 5; i * i <= n; i = i + 6)
    if (n % i == 0 || n % (i + 2) == 0) return false;
  return true;
}
bool isPowerOfTwo(unsigned long long x) { return x && (!(x & (x - 1))); }
int nextPrime(int N) {
  if (N <= 1) return 2;
  int prime = N;
  bool found = false;
  while (!found) {
    prime++;
    if (isPrime(prime)) found = true;
  }
  return prime;
}
bool sortcol(const vector<long long int>& v1, const vector<long long int>& v2) {
  return v1[0] < v2[0];
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  long long int b = 0, q, c, x, y, start = 0, end = 0, count = 0, neg = 0,
                pos = 0, count1 = 0, a1 = 0, b1 = 0, c1 = 0, x1, y1, n1, m,
                ans = 0, sum = 0, k;
  long long int n;
  string s1, s2(""), s3("");
  bool check2 = false, check3 = false;
  long long int x3, x2, y3, y2;
  int curr1 = 0, curr = 0;
  vector<int> arr(130, 0);
  vector<int> arr1;
  stack<char> s;
  long long int vb;
  bool check1 = false, check4 = false;
  vector<double> arrv;
  unordered_map<long long int, long long int> map1;
  unordered_map<long long int, long long int> map2;
  long long int a, l = 0, d = 0, u = 0, v, g, sub;
  cin >> s1;
  n = s1.length();
  for (int i = 0; i < n; i++) {
    arr[s1[i]]++;
  }
  for (int i = 0; i < arr.size(); i++) {
    if (arr[i] % 2 != 0) count++;
  }
  if (count == 0 || count == 1)
    cout << "First";
  else if (count % 2 != 0)
    cout << "First";
  else
    cout << "Second";
  return 0;
}
