#include <bits/stdc++.h>
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(v,val) memset(v,val,sizeof(v))
#define mod 1e9+7
#define oo 1e9
const int N = 1e5 + 5;
int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); } // log(n) __gcd(a,b)
//todo اى ويل بريبير ماى بيبرز تو بى ذا بيست ان زيس وورلد
string s;
int cnt=0;
map<pair<int,string>,int>dp;
int solve(int i,string x) 
{
   if(i==s.length())
   {
      string y=x; reverse(all(y)); 
      if(x==y) return 1;
      return 0;
   }
   if(dp.count({i,x})) return dp[{i,x}];
   return dp[{i,x}] =solve(i+1,x)+solve(i+1,x+s[i]);
}
void HereWeGoAgain()
{
  dp.clear();
  cin>>s;
  cnt=0;
  cout<<solve(0,"")-1<<el;
}
int32_t main() 
{
    Arwa
    int t=1;
    cin>>t;
    for(int i=1;i<=t;i++)
    {
    HereWeGoAgain();
    }
    return 0;
}
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGRkIGRvdWJsZQojZGVmaW5lIGxkIGxvbmcgZG91YmxlCiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIHllcyBjb3V0IDw8ICJZRVNcbiIKI2RlZmluZSBubyBjb3V0IDw8ICJOT1xuIgojZGVmaW5lIGVsICJcbiIKI2RlZmluZSBBcndhIGlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKI2RlZmluZSBmaXgoeCkgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oeCkKI2RlZmluZSBhbGwodikgdi5iZWdpbigpLHYuZW5kKCkKI2RlZmluZSBkcHAodix2YWwpIG1lbXNldCh2LHZhbCxzaXplb2YodikpCiNkZWZpbmUgbW9kIDFlOSs3CiNkZWZpbmUgb28gMWU5CmNvbnN0IGludCBOID0gMWU1ICsgNTsKaW50IGdjZChpbnQgYSwgaW50IGIpIHsgcmV0dXJuIGIgPT0gMCA/IGEgOiBnY2QoYiwgYSAlIGIpOyB9IC8vIGxvZyhuKSBfX2djZChhLGIpCi8vdG9kbyDYp9mJINmI2YrZhCDYqNix2YrYqNmK2LEg2YXYp9mJINio2YrYqNix2LIg2KrZiCDYqNmJINiw2Kcg2KjZitiz2Kog2KfZhiDYstmK2LMg2YjZiNix2YTYrwpzdHJpbmcgczsKaW50IGNudD0wOwptYXA8cGFpcjxpbnQsc3RyaW5nPixpbnQ+ZHA7CmludCBzb2x2ZShpbnQgaSxzdHJpbmcgeCkgCnsKICAgaWYoaT09cy5sZW5ndGgoKSkKICAgewogICAgICBzdHJpbmcgeT14OyByZXZlcnNlKGFsbCh5KSk7IAogICAgICBpZih4PT15KSByZXR1cm4gMTsKICAgICAgcmV0dXJuIDA7CiAgIH0KICAgaWYoZHAuY291bnQoe2kseH0pKSByZXR1cm4gZHBbe2kseH1dOwogICByZXR1cm4gZHBbe2kseH1dID1zb2x2ZShpKzEseCkrc29sdmUoaSsxLHgrc1tpXSk7Cn0Kdm9pZCBIZXJlV2VHb0FnYWluKCkKewogIGRwLmNsZWFyKCk7CiAgY2luPj5zOwogIGNudD0wOwogIGNvdXQ8PHNvbHZlKDAsIiIpLTE8PGVsOwp9CmludDMyX3QgbWFpbigpIAp7CiAgICBBcndhCiAgICBpbnQgdD0xOwogICAgY2luPj50OwogICAgZm9yKGludCBpPTE7aTw9dDtpKyspCiAgICB7CiAgICBIZXJlV2VHb0FnYWluKCk7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==