#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;   }