You've got a rectangular table with length a and width b and the infinite number of plates of radius r. Two players play the following game: they take turns to put the plates on the table so that the plates don't lie on each other (but they can touch each other), and so that any point on any plate is located within the table's border. During the game one cannot move the plates that already lie on the table. The player who cannot make another move loses. Determine which player wins, the one who moves first or the one who moves second, provided that both players play optimally well.

Input

A single line contains three space-separated integers a, b, r (1 ≤ a, b, r ≤ 100) — the table sides and the plates' radius, correspondingly.

Output

If wins the player who moves first, print "First" (without the quotes). Otherwise print "Second" (without the quotes).

Examples

Input

5 5 2


Output

First


Input

6 7 4


Output

Second

Note

In the first sample the table has place for only one plate. The first player puts a plate on the table, the second player can't do that and loses.

<image>

In the second sample the table is so small that it doesn't have enough place even for one plate. So the first player loses without making a single move.

<image>
import java.io.*;
import java.util.*;
import java.math.*;

import static java.lang.Math.*;

public class Solution implements Runnable {

	StreamTokenizer in;
	BufferedReader reader;
	PrintWriter out;
	StringTokenizer tok;
	Scanner sc;
	boolean timus = System.getProperty("ONLINE_JUDGE") != null;
	boolean codeforces = true;
	final double eps = 1e-9;

	public static void main(String[] args) throws Exception {
		new Thread(new Solution()).start();
	}

	@Override
	public void run() {
		try {
			if (codeforces) {
				sc = new Scanner(System.in);
				reader = new BufferedReader(new InputStreamReader(System.in));
				in = new StreamTokenizer(reader);
				out = new PrintWriter(new OutputStreamWriter(System.out));
				tok = new StringTokenizer("");
				solve();
				out.flush();
			} else if (timus) {
				sc = new Scanner("input.txt");
				reader = new BufferedReader(new FileReader("input.txt"));
				in = new StreamTokenizer(reader);
				out = new PrintWriter(new FileWriter("output.txt"));
				tok = new StringTokenizer("");
				solve();
				out.flush();
				out.close();
			} else if (!timus) {
				long begMem = Runtime.getRuntime().totalMemory()
						- Runtime.getRuntime().freeMemory();
				long t1 = System.currentTimeMillis();
				reader = new BufferedReader(new InputStreamReader(System.in));
				in = new StreamTokenizer(reader);
				sc = new Scanner(System.in);
				out = new PrintWriter(new OutputStreamWriter(System.out));
				tok = new StringTokenizer("");
				solve();
				long endMem = Runtime.getRuntime().totalMemory()
						- Runtime.getRuntime().freeMemory();
				out.flush();
				long t2 = System.currentTimeMillis();
				System.out.println("Time:" + (t2 - t1));
				System.out.println("Memory:" + (endMem - begMem));
				System.out.println("Total memory: "
						+ (Runtime.getRuntime().totalMemory() - Runtime
								.getRuntime().freeMemory()));
			}
		} catch (Exception ex) {
			System.out.println("fail");
			System.exit(1);
		}
	}

	public class Chess {
		String coord;

		public Chess(String s) {
			this.coord = s;
		}

		public int toInteger(char s) {
			if (s == 'a' || s == 'A')
				return 1;
			else if (s == 'b' || s == 'B')
				return 2;
			else if (s == 'c' || s == 'C')
				return 3;
			else if (s == 'd' || s == 'D')
				return 4;
			else if (s == 'e' || s == 'E')
				return 5;
			else if (s == 'f' || s == 'F')
				return 6;
			else if (s == 'g' || s == 'G')
				return 7;
			else if (s == 'h' || s == 'H')
				return 8;
			else
				return -1;
		}

		public String toString(int s) {
			if (s == 1)
				return "a";
			else if (s == 2)
				return "b";
			else if (s == 3)
				return "c";
			else if (s == 4)
				return "d";
			else if (s == 5)
				return "e";
			else if (s == 6)
				return "f";
			else if (s == 7)
				return "g";
			else if (s == 8)
				return "h";
			else
				return "0";
		}

		public pair getPair() {
			String j = "";
			j += coord.charAt(1);
			pair p = new pair(toInteger(coord.charAt(0)), Integer.parseInt(j));
			if (p.x != -1)
				return p;
			else
				return new pair(0, 0);
		}

		public String returnPair(pair p) {
			return toString(p.x) + p.y;
		}
	}

	public int nextInt() throws Exception {
		in.nextToken();
		return (int) in.nval;
	}

	public String next() throws Exception {
		in.nextToken();
		return in.sval;
	}

	public String nextLine() throws Exception {
		return reader.readLine();
	}

	public String nextString() throws Exception {
		while (!tok.hasMoreTokens())
			tok = new StringTokenizer(reader.readLine());
		return tok.nextToken();
	}

	public long nextLong() throws Exception {
		return Long.parseLong(nextString());
	}

	public double nextDouble() throws Exception {
		in.nextToken();
		return in.nval;
	}

	public class pair {
		int x;
		int y;

		public pair(int x, int y) {
			this.x = x;
			this.y = y;
		}
	}

	public int gcd(int a, int b) {
		if (a == 0 || b == 0)
			return 1;
		if (a < b) {
			int c = b;
			b = a;
			a = c;
		}
		while (a % b != 0) {
			a = a % b;
			if (a < b) {
				int c = b;
				b = a;
				a = c;
			}
		}
		return b;
	}

	public int pow(int a, int n) {
		if (n == 0)
			return 1;
		int k = n, b = 1, c = a;
		while (k != 0) {
			if (k % 2 == 0) {
				k /= 2;
				c *= c;
			} else {
				k--;
				b *= c;
			}
		}
		return b;
	}

	public int lcm(int a, int b) {
		return a * b / gcd(a, b);
	}

	public class pairs implements Comparable<pairs> {
		int x;
		int y;

		public pairs(int x, int y) {
			this.x = x;
			this.y = y;
		}

		@Override
		public int compareTo(pairs obj) {
			if (this.x < ((pairs) obj).x)
				return 1;
			else if (this.x == (obj).x && this.y < (obj).y)
				return 1;
			else if (this.x == (obj).x && this.y == (obj).y)
				return 0;
			else
				return -1;
		}
	}

	public class Graf {

		int[][] a;
		int[] colors;
		ArrayList<String> points = new ArrayList<String>();
		LinkedList<Integer> queue = new LinkedList<Integer>();
		boolean[] used;
		boolean cycle;
		int numberOfCycle;

		public Graf(int[][] a, String s[]) {
			this.a = new int[s.length][s.length];
			this.a = a;
			this.colors = new int[s.length];
			this.used = new boolean[s.length];
			for (int i = 0; i < s.length; i++) {
				this.colors[i] = 0;
				this.points.add(s[i]);
			}
			Arrays.fill(this.used, false);
		}

		public void bfs(int i) {
			this.queue.add(i);
			while (!this.queue.isEmpty()) {
				i = this.queue.pop();
				out.print(points.get(i) + " ");
				this.used[i] = true;
				for (int j = 0; j < this.points.size(); j++) {
					if (this.a[i][j] == 1 && !this.queue.contains(j)
							&& !this.used[j]) {
						this.a[i][j] = 0;
						this.a[j][i] = 0;
						this.queue.addLast(j);
					}
				}
			}
		}

		public void dfs(int i) {
			this.colors[i] = 1;
			out.print(points.get(i) + " ");
			for (int j = 0; j < this.colors.length; j++) {
				if (this.a[i][j] == 1 && this.colors[j] == 0) {
					this.colors[j] = 1;
					this.a[i][j] = 0;
					this.a[j][i] = 0;
					dfs(j);
				} else if (this.a[i][j] == 1 && this.colors[j] == 1) {
					this.cycle = true;
					this.numberOfCycle++;
				}
			}
			this.colors[i] = 2;
		}
	}

	public class Time {

		int h;
		int min;
		int sec;

		public Time(String s) {
			String[] st = s.split(":");
			this.h = Integer.parseInt(st[0]);
			this.min = Integer.parseInt(st[1]);
			this.sec = (st[2] != null) ? Integer.parseInt(st[2]) : 0;
		}

		public String toString(int a) {
			String h = Integer.toString(this.h);
			String min = Integer.toString(this.min);
			String sec = Integer.toString(this.sec);
			if (h.length() == 1) {
				h = '0' + h;
			}
			if (min.length() == 1) {
				min = '0' + min;
			}
			if (sec.length() == 1) {
				sec = '0' + sec;
			}
			if (a == 5) {
				return h + ":" + min;
			} else {
				return h + ":" + min + ":" + sec;
			}
		}

		public void to12HoursFormat() {
			h %= 12;
		}

		public void add(int h, int min, int s) {
			this.sec += s;
			if (this.sec >= 60) {
				this.min++;
				this.sec %= 60;
			}
			this.min += min;
			if (this.min >= 60) {
				this.h++;
				this.min %= 60;
			}
			this.h += h;
			if (this.h >= 24) {
				this.h %= 24;
			}
		}
	}

	public int[] findPrimes(int x) {
		boolean[] erat = new boolean[x - 1];
		List<Integer> t = new ArrayList<Integer>();
		int l = 0, j = 0;
		for (int i = 2; i < x; i++) {
			if (erat[i - 2])
				continue;
			t.add(i);
			l++;
			j = i * 2;
			while (j < x) {
				erat[j - 2] = true;
				j += i;
			}
		}
		int[] primes = new int[l];
		Iterator<Integer> iterator = t.iterator();
		for (int i = 0; iterator.hasNext(); i++) {
			primes[i] = iterator.next().intValue();
		}
		return primes;
	}

	public double dist(pair a, pair b) {
		return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
	}

	public void solve() throws Exception {
		int a = nextInt();
		int b = nextInt();
		int r = nextInt();
		if (Math.min(a, b) < 2*r) {
			out.println("Second");
		} else {
			out.println("First");
		}
	}
}