#include <bits/stdc++.h>
const int MAX = 2000000;
const long long MOD = 1e9 + 7;
const int INF = 0x3f3f3f3f;
const long long LLINF = 0x3f3f3f3f3f3f3f3f;
const long double EPS = 1e-7;
const long double PI = acosl(-1.0);
using namespace std;
void choose(bool opt) {
  if (opt)
    cout << "First" << endl;
  else
    cout << "Second" << endl;
  cout.flush();
}
int read() {
  int ans;
  cin >> ans;
  if (ans <= 0) exit(0);
  return ans;
}
void print(long long x) {
  cout << x << endl;
  cout.flush();
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  vector<long long> vet(3);
  cin >> vet[0] >> vet[1] >> vet[2];
  vector<pair<long long, long long> > vet2 = {
      {vet[0], 1}, {vet[1], 2}, {vet[2], 3}};
  sort(vet2.begin(), vet2.end());
  sort(vet.begin(), vet.end());
  map<int, int> m;
  for (int i = 0; i < 3; i++) m[vet2[i].second] = i + 1;
  choose(1);
  print(2 * vet[2] - vet[1] - vet[0]);
  int ans = m[read()];
  if (ans == 1)
    print(vet[2] - vet[1]);
  else if (ans == 2)
    print(vet[2] - vet[0]);
  else {
    vet[2] = 3 * vet[2] - vet[1] - vet[0];
    print(2 * vet[2] - vet[1] - vet[0]);
    int ans = m[read()];
    if (ans == 1)
      print(vet[2] - vet[1]);
    else
      print(vet[2] - vet[0]);
  }
  read();
  return 0;
}
