#include using namespace std; #define ll long long #define FOR(i,n,m) for(int i=(n);i<(m);i++) #define REP(i,n) FOR(i,0,n) #define REPR(i,n) for(int i=(n);i>=0;i--) #define all(vec) vec.begin(),vec.end() using vi=vector; using vvi=vector; using vl=vector; using vvl=vector; using P=pair; using PP=pair; using Pl=pair; using PPl=pair; using vs=vector; #define fi first #define se second #define pb push_back templatebool chmax(T &a,const T &b){if(abool chmin(T &a,const T &b){if(a>b){a=b;return true;}return false;} const ll MOD=1000000007LL; const int INF=1<<30; const ll LINF=1LL<<60; map ma; bool isPrime(int n){ if(ma.find(n)!=ma.end()){ return ma[n]; } for(int i=2;i*i<=n;i++){ if(n%i==0){ return ma[n]=false; } } return ma[n]=n!=1; } map ma2; bool dfs(int x,int y){ if(ma2.find(P(x,y))!=ma2.end()){ return ma2[P(x,y)]; } if(!isPrime(x+1)&&!isPrime(y)){ if(!dfs(x+1,y)){ return ma2[P(x,y)]=true; } } if(!isPrime(x)&&!isPrime(y+1)){ if(!dfs(x,y+1)){ return ma2[P(x,y)]=true; } } return ma2[P(x,y)]=false; } int main(){ int x,y; cin>>x>>y; cout<<(dfs(x,y)?"First":"Second")<