1 /*计算里面有多少个相邻的he,1个he就是1种意思,两个就是,两种,所以这是
2 一个斐波拉期数列,间隔的hehe互不影响所以是互斥事件,直接相乘就可以*/
3 #include<stdio.h>
4 #include<string.h>
5 const int maxn=10086+10;
6 const int mod=10007;
7 int fb[maxn];
8 void init()
9 {
10 int i;
11 fb[0]=fb[1]=1;
12 for(i=2;i<maxn;i++)
13 {
14 fb[i]=(fb[i-1]+fb[i-2])%mod;
15 }
16 }
17 int main()
18 {
19 int i,m;
20 int t;
21 int ca=0;
22 char s[maxn];
23 init();
24 scanf("%d",&t);
25 while(t--)
26 {
27 int ans=1;
28 scanf("%s",s);
29 m=strlen(s);
30 for(i=0;i<m;i++)
31 {
32 int k=0;
33 if(s[i]=='h' && s[i+1]=='e')
34 {
35 k=1;
36 i=i+2;
37 while(s[i]=='h'&&s[i+1]=='e'&&i<m-1)
38 {
39 k++;
40 i=i+2;
41 }
42 //printf("%d ",k);
43 }
44 ans=(ans*fb[k])%mod;
45 //printf("%d\n",fb[k]);
46 }
47 printf("Case %d: %d\n",++ca,ans);
48 }
49 return 0;
50 }