#pragma GCC optimize("Ofast") #pragma GCC target("avx2") char*mmap(); #define RD(v) int v=0;{int c;while(c=*r++-48,c>=0)v=v*10+c;} #define RDL(v) long v=0;{int c;while(c=*r++-48,c>=0)v=v*10+c;} long b[1<<20]; char g[1<<20]; main(){ char*r=mmap(0l,1024l,1,2,0,0l); char*w="Draw "; RD(n); RDL(v); int nn=1<v){ for(int i=nn;i--;){ if(b[i]>v){ g[i]=1; }else{ g[i]=0; int ii=~i&nn-1,j,t=1; for(;j=ii&-ii;ii^=j){ if(!g[i|j]){ g[i]=1; break; } } } } w=g[0]?"First ":"Second"; } write(1,w,6); _exit(0); }