#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
vector<pair<long long, int> > g;
long long ask1(long long y) {
  cout << y << endl;
  long long res;
  cin >> res;
  return res;
  if (res == 0) exit(0);
}
int main() {
  long long a, b, c, y;
  cin >> a >> b >> c;
  g.push_back(pair<long long, int>(a, 1)),
      g.push_back(pair<long long, int>(b, 2)),
      g.push_back(pair<long long, int>(c, 3));
  sort(g.begin(), g.end());
  if (a == b && b == c) {
    cout << "First" << endl;
    ask1(1);
  } else if (g[0].first == g[1].first) {
    cout << "First" << endl;
    long long d = g[2].first - g[1].first;
    ask1(d);
    ask1(d);
  } else if (g[1].first == g[2].first) {
    long long d = g[1].first - g[0].first;
    cout << "First" << endl;
    ask1(d);
    ask1(d);
  } else {
    cout << "First" << endl;
    y = 2e9;
    int x = ask1(y);
    if (x == 0) return 0;
    for (int i = (0); i < (3); i++)
      if (g[i].second == x) g[i].first += y;
    sort(g.begin(), g.end());
    y = g[2].first * 2 - g[1].first - g[0].first;
    if (y == 0) exit(0);
    x = ask1(y);
    if (x == 0) return 0;
    for (int i = (0); i < (3); i++)
      if (g[i].second == x) g[i].first += y;
    sort(g.begin(), g.end());
    y = g[2].first - g[1].first;
    if (y == 0) return 0;
    ask1(y);
  }
  return 0;
}
