SG函数模板
const int N=1010;
int f[N],sg[N],s[N],cnt;
void MakeSG()
{
memset(sg,0,sizeof(sg));
for(int i=1;i<N;i++)
{
memset(s,0,sizeof(s));
for(int j=0;j<cnt&&f[j]<=i;j++) s[sg[i-f[j]]]=1;
for(int j=0;;j++) if(!s[j]) {sg[i]=j;break;}
}
}