#include <bits/stdc++.h>
#include <bitset>
using namespace std;
#define int long long
#define dd double
#define ld long double
#define ull unsigned long long
#define yes cout << "YES\n"
#define no cout << "NO\n"
#define el "\n"
#define Arwa ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define fix(x) cout << fixed << setprecision(x)
#define all(v) v.begin(),v.end()
#define dpp(arr,val) memset(arr,val,sizeof(arr))
#define mod 1e9+7
const int N = 1e5 + 5;
//todo اى ويل بريبير ماى بيبرز تو بى ذا بيست ان زيس وورلد
//prime factorization
map<int,int>pf;
void primeFact(int n)
{
 
    for(int i=2;i*i<=n;i++)
    {
        if(n%i==0)
        {
        int cnt=0;
        while(n%i==0) n/=i,cnt++;
        pf[i]+=cnt;
        }
    }
   if(n>1) pf[n]+=1;
}
void HereWeGoAgain()
{
  pf.clear();
  string s;
  cin>>s;
  int k=0,num=0;
  for(int i=0;i<s.length();i++)
  {
    if(s[i]=='!') k++;
    else
    {
        num*=10;
        num+=(s[i]-'0');
    }
  }
 // cout<<num<<' '<<k<<el;
  for(int i=num;i>=1;i-=k)
  {
    primeFact(i);
  }
  int dividers=1;
  for(auto it:pf)// cout<<it.first<<' '<<it.second<<' '; cout<<el;
  {
    if(it.second)
    {
    if(dividers>LONG_MAX/(it.second+1)) { cout<<"Infinity\n"; return; }
    else dividers*=(it.second+1);
    }
  }
  cout<<dividers<<'\n';
}
 
int32_t main() 
{
 
    Arwa
    int t=1;
    cin>>t;
    for(int i=1;i<=t;i++)
    {
    cout<<"Case "<<i<<": ";
    HereWeGoAgain();
    }
    return 0;
}
 
 
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxiaXRzZXQ+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGRkIGRvdWJsZQojZGVmaW5lIGxkIGxvbmcgZG91YmxlCiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIHllcyBjb3V0IDw8ICJZRVNcbiIKI2RlZmluZSBubyBjb3V0IDw8ICJOT1xuIgojZGVmaW5lIGVsICJcbiIKI2RlZmluZSBBcndhIGlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKI2RlZmluZSBmaXgoeCkgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oeCkKI2RlZmluZSBhbGwodikgdi5iZWdpbigpLHYuZW5kKCkKI2RlZmluZSBkcHAoYXJyLHZhbCkgbWVtc2V0KGFycix2YWwsc2l6ZW9mKGFycikpCiNkZWZpbmUgbW9kIDFlOSs3CmNvbnN0IGludCBOID0gMWU1ICsgNTsKLy90b2RvINin2Ykg2YjZitmEINio2LHZitio2YrYsSDZhdin2Ykg2KjZitio2LHYsiDYqtmIINio2Ykg2LDYpyDYqNmK2LPYqiDYp9mGINiy2YrYsyDZiNmI2LHZhNivCi8vcHJpbWUgZmFjdG9yaXphdGlvbgptYXA8aW50LGludD5wZjsKdm9pZCBwcmltZUZhY3QoaW50IG4pCnsKICAgIAogICAgZm9yKGludCBpPTI7aSppPD1uO2krKykKICAgIHsKICAgICAgICBpZihuJWk9PTApCiAgICAgICAgewogICAgICAgIGludCBjbnQ9MDsKICAgICAgICB3aGlsZShuJWk9PTApIG4vPWksY250Kys7CiAgICAgICAgcGZbaV0rPWNudDsKICAgICAgICB9CiAgICB9CiAgIGlmKG4+MSkgcGZbbl0rPTE7Cn0Kdm9pZCBIZXJlV2VHb0FnYWluKCkKewogIHBmLmNsZWFyKCk7CiAgc3RyaW5nIHM7CiAgY2luPj5zOwogIGludCBrPTAsbnVtPTA7CiAgZm9yKGludCBpPTA7aTxzLmxlbmd0aCgpO2krKykKICB7CiAgICBpZihzW2ldPT0nIScpIGsrKzsKICAgIGVsc2UKICAgIHsKICAgICAgICBudW0qPTEwOwogICAgICAgIG51bSs9KHNbaV0tJzAnKTsKICAgIH0KICB9CiAvLyBjb3V0PDxudW08PCcgJzw8azw8ZWw7CiAgZm9yKGludCBpPW51bTtpPj0xO2ktPWspCiAgewogICAgcHJpbWVGYWN0KGkpOwogIH0KICBpbnQgZGl2aWRlcnM9MTsKICBmb3IoYXV0byBpdDpwZikvLyBjb3V0PDxpdC5maXJzdDw8JyAnPDxpdC5zZWNvbmQ8PCcgJzsgY291dDw8ZWw7CiAgewogICAgaWYoaXQuc2Vjb25kKQogICAgewogICAgaWYoZGl2aWRlcnM+TE9OR19NQVgvKGl0LnNlY29uZCsxKSkgeyBjb3V0PDwiSW5maW5pdHlcbiI7IHJldHVybjsgfQogICAgZWxzZSBkaXZpZGVycyo9KGl0LnNlY29uZCsxKTsKICAgIH0KICB9CiAgY291dDw8ZGl2aWRlcnM8PCdcbic7Cn0KCmludDMyX3QgbWFpbigpIAp7CiAgIAogICAgQXJ3YQogICAgaW50IHQ9MTsKICAgIGNpbj4+dDsKICAgIGZvcihpbnQgaT0xO2k8PXQ7aSsrKQogICAgewogICAgY291dDw8IkNhc2UgIjw8aTw8IjogIjsKICAgIEhlcmVXZUdvQWdhaW4oKTsKICAgIH0KICAgIHJldHVybiAwOwp9Cgo=