#include <bits/stdc++.h>
using namespace std;
template <typename T>
ostream& operator<<(ostream& os, vector<T> v) {
  os << "[";
  for (auto it : v) os << it << " ";
  return os << "]";
}
template <typename K, typename V>
ostream& operator<<(ostream& os, pair<K, V> v) {
  return os << "(" << v.first << ", " << v.second << ")";
}
using namespace std;
int ask(long long y) {
  cout << y << "\n";
  cout.flush();
  int pos;
  cin >> pos;
  if (pos == 0) exit(0);
  return pos - 1;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
  vector<long long> v(3);
  cin >> v[0] >> v[1] >> v[2];
  cout << "First\n";
  cout.flush();
  vector<long long> g((v).begin(), (v).end());
  sort((g).begin(), (g).end());
  long long y = 2 * g[2] - g[1] - g[0];
  int pos = ask(y);
  if (v[pos] == g[2]) {
    v[pos] += y;
    g = vector<long long>((v).begin(), (v).end());
    sort((g).begin(), (g).end());
    y = 2 * g[2] - g[1] - g[0];
    pos = ask(y);
  }
  v[pos] += y;
  g = vector<long long>((v).begin(), (v).end());
  sort((g).begin(), (g).end());
  ask(g[1] - g[0]);
  assert(false);
}
