package main
import (
"bufio"
"fmt"
"os"
"sort"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var a [3]int64
if _, err := fmt.Fscan(in, &a[0], &a[1], &a[2]); err != nil {
return
}
fmt.Fprintln(out, "First")
out.Flush()
y1 := max3(a[0], a[1], a[2]) - min3(a[0], a[1], a[2]) + 1
fmt.Fprintln(out, y1)
out.Flush()
var p1 int
if _, err := fmt.Fscan(in, &p1); err != nil || p1 <= 0 {
return
}
p1--
a[p1] += y1
var vals []int64
for i := 0; i < 3; i++ {
if i != p1 {
vals = append(vals, a[i])
}
}
if vals[0] > vals[1] {
vals[0], vals[1] = vals[1], vals[0]
}
u, v, w := vals[0], vals[1], a[p1]
y2 := 2*w - u - v
fmt.Fprintln(out, y2)
out.Flush()
var p2 int
if _, err := fmt.Fscan(in, &p2); err != nil || p2 <= 0 {
return
}
p2--
a[p2] += y2
b := []int64{a[0], a[1], a[2]}
sort.Slice(b, func(i, j int) bool { return b[i] < b[j] })
y3 := b[1] - b[0]
fmt.Fprintln(out, y3)
out.Flush()
}
func min3(a, b, c int64) int64 {
if a > b {
a, b = b, a
}
if a > c {
return c
}
return a
}
func max3(a, b, c int64) int64 {
if a < b {
a, b = b, a
}
if a < c {
return c
}
return a
}