/* Date: 2015/05/23 12:07:47 Saturday Author: xllend3 */ #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define X first #define Y second #define mp make_pair #define ph push #define pb push_back #define REP(i,a,n) for(int _tmp=n,i=a;i<=_tmp;++i) #define DEP(i,a,n) for(int _tmp=n,i=a;i>=_tmp;--i) #define rep(i,a,n) for(int i=(a);i<=(n);++i) #define dep(i,a,n) for(int i=(a);i>=(n);--i) #define ALL(x,S) for(__typeof((S).end()) x=S.begin();x!=S.end();x++) #define eps 1e-8 #define pi 3.1415926535897 #define sqr(x) ((x)*(x)) #define MAX(a,b) a=max(a,b) #define MIN(a,b) a=min(a,b) #define SZ(x) ((int)(x).size()) #define CPY(a,b) memcpy(a,b,sizeof(a)) #define CLR(a) memset(a,0,sizeof(a)) #define POSIN(x,y) (1<=(x)&&(x)<=n&&1<=(y)&&(y)<=m) #define all(x) (x).begin(),(x).end() #define COUT(S,x) cout< pii; typedef pair pll; typedef pair pff; typedef complex CD; const int inf=0x20202020; const int mod=1000000007; template inline void read(T&x){bool fu=0;char c;for(c=getchar();c<=32;c=getchar());if(c=='-')fu=1,c=getchar();for(x=0;c>32;c=getchar())x=x*10+c-'0';if(fu)x=-x;}; template inline void read(T&x,T&y){read(x);read(y);} template inline void read(T&x,T&y,T&z){read(x);read(y);read(z);} template inline void read(T&x,T&y,T&z,T&q){read(x);read(y);read(z);read(q);} const int DX[]={1,0,-1,0},DY[]={0,1,0,-1}; ll powmod(ll a,ll b) {ll res=1;a%=mod;for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;} ll powmod(ll a,ll b,ll mod) {ll res=1;a%=mod;for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;} ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;} //******************************************* const int N=1111111,M=111111; int l,m,n,t,C; ll f[N]; int main(){ //ios::sync_with_stdio(false); #ifdef LOCAL freopen("A.in","r",stdin);//freopen("A.out","w",stdout); #endif n=1000000; f[1]=1;f[2]=2;f[3]=4; rep(i,4,n)f[i]=(f[i-2]*(i-1)%mod+f[i-1])%mod; scanf("%d",&C);rep(_,1,C){ printf("Case #%d:\n",_); scanf("%d",&n);printf("%d\n",f[n]); } return 0; }