import std.algorithm;
import std.array;
import std.conv;
import std.numeric;
import std.range;
import std.stdio;
import std.string;

bool solve (int [] a, int n)
{
	auto total = a.sum (0L) - n;
	if (total & 1)
	{
		return true;
	}
	if (n & 1)
	{
		int [] p;
		foreach (i; 0..n)
		{
			if (a[i] == 1)
			{
				return false;
			}
			if (a[i] & 1)
			{
				p ~= [i];
			}
		}
		if (p.length == 1)
		{
			a[p.front] -= 1;
			auto g = a.reduce !(gcd);
			a[] /= g;
			return !solve (a, n);
		}
	}
	return false;
}

void main ()
{
	int n;
	while (readf (" %s", &n) > 0)
	{
		readln;
		auto a = readln.split.map !(to !(int)).array;
		writeln (solve (a, n) ? "First" : "Second");
	}
}
