#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define rep(i,a,b) for(int i=a;i<b;i++ )
#define per(i,a,b) for(int i=b-1;i>=a;i--)
const int maxn=1010;
const int mod=1e9+7;
ll dp[maxn];
/*
想了半天,一直想着是,i的 第j层可以由 (i-1)的 j层和(j-1)层,得到,所以在这里死推,怎样去重
做法:
对于n个节点的数,我们考虑拿走根节点,下面的子树肯定是由前面的子树构成的,只要各个节点能够均分,就好了
实在是妙啊
*/
void init(){
dp[1]=1;
rep(i,2,maxn){
rep(j,1,i){
if((i-1)%j==0){
dp[i]=(dp[i]+dp[j])%mod;
}
}
}
}
int main(){
init();
int cnt=1,n;
while(scanf("%d",&n)==1){
printf("Case %d: %lld\n",cnt++,dp[n]);
}
return 0;
}