//错排公式
#include<stdio.h>
#include<stdlib.h>
#define N 1000000007
int t,n;
long long f[105]={0,0,1};
int main(){
for(int i=3;i<=105;i++)
f[i]=(((i-1)*f[i-1])%N+((i-1)*f[i-2])%N)%N;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
printf("%d\n",f[n]);
}
//system("pause");
return 0;
}