// 活动地址: 牛客春招刷题训练营 - 编程打卡活动


#include <ios>
#pragma clang diagnostic push

#pragma ide diagnostic ignored "cppcoreguidelines-narrowing-conversions"

#pragma ide diagnostic ignored "hicpp-signed-bitwise"

#pragma GCC optimize ("Ofast,unroll-loops")

#pragma GCC optimize("no-stack-protector,fast-math")

 

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

typedef pair<ll, ll> pll;

typedef pair<int, int> pii;

typedef pair<double, double> pdd;   

typedef vector<int> vi;

typedef vector<ll> vll;

typedef vector<double> vd;

typedef vector<string> vs;

typedef vector<vi> vvi;

typedef vector<vvi> vvvi;

typedef vector<vll> vvll;

typedef vector<vvll> vvvll;

typedef vector<pii> vpii;

typedef vector<vpii> vvpii;

typedef vector<pll> vpll;

typedef vector<vpll> vvpll;

typedef vector<pdd> vpdd;

typedef vector<vd> vvd;

#define yn(ans) printf("%s\n", (ans)?"Yes":"No");

#define YN(ans) printf("%s\n", (ans)?"YES":"NO");

template<class T> bool chmax(T &a, T b) {

    if (a >= b) return false;

    a = b; return true;

}

template<class T> bool chmin(T &a, T b) {

    if (a <= b) return false;

    a = b; return true;

}

#define FOR(i, s, e, t) for ((i) = (s); (i) < (e); (i) += (t)) 

#define REP(i, e) for (int i = 0; i < (e); ++i) 

#define REP1(i, s, e) for (int i = (s); i < (e); ++i)

#define RREP(i, e) for (int i = (e); i >= 0; --i)

#define RREP1(i, e, s) for (int i = (e); i >= (s); --i)

#define all(v) v.begin(), v.end()

#define pb push_back

#define qb pop_back

#define pf push_front

#define qf pop_front

#define maxe max_element

#define mine min_element

ll inf = 1e18;

#define DEBUG printf("%d\n", __LINE__); fflush(stdout);

template<class T> void print(vector<T> &v, bool withSize = false) {

    if (withSize) cout << v.size() << endl;

    REP(i, v.size()) cout << v[i] << " "; 

    cout << endl;

}

mt19937_64 rng((unsigned int) chrono::steady_clock::now().time_since_epoch().count());

 

int __FAST_IO__ = []() {

    std::ios::sync_with_stdio(0);

    std::cin.tie(0);

    std::cout.tie(0);

    return 0;

}();

#include<bits/stdc++.h>

using  namespace std;

#define mod 1000000007

typedef long long ll;

#define int  long long

inline ll read() // void int &n

{

    ll s=0,f=1;

    char c=getchar();

    while(c>'9'||c<'0')     

{

        if(c=='-')  

            f=-1;   

        c=getchar();

    }

    while(c>='0'&&c<='9')

    {

        s=(s<<1)+(s<<3)+c-'0';

        c=getchar();

    }

    return s*f;

}

inline void write(int n)

{

if(n<0)

{

  putchar('-');

  n=-n;

}

    

if(n>10) write(n/10);

putchar(n%10+'0');

}

int jiechen(int n)

{

    int sum = 1;

    for (int i = 2; i <= n; i++)

        sum = sum * i % mod;

    return sum % mod;

}

int qsm(ll a, ll p)

{

    ll s=1;

    while(p)

    {

        if(p&1)

         s=s*a%mod;

      a=a*a%mod;

    }

       return s;

}

ll isprime(ll x)

{

    if(x<2)

        return 0;

    for(int i=2;i<=x/i;i++)

        if(x%i==0)

            return 0;

    return 1;

}

const int N=3e6+10;

// bool vis[N];

// int prime[N],kk=0;

// void init()

// {

//  vis[1] = true; vis[0] = true;

//  for (int i = 2; i <= N; i++)

//  {

//      if (!vis[i])

//      {

//          prime[kk++] = i;

            

//      }

//      for (int j = 0; j < kk; j++)

//      {

//          if (prime[j] * i > N)

//              break;

//          vis[prime[j] * i] = true;

//          if (i % prime[j] == 0)

//              break;

//      }

//  }

// }
void solve(){

    string s;
    cin>>s;
    //  设置映射关系 构造映射表 判断是否满足映射关系
    map<char,char>m;
    // 标记
    int f=1;

    string a="ilmnouvwx";
    for(auto c:a){
        m[c]=c;
    }
    m['p']='q';
    m['q']='p';
    m['b']='d';
    m['d']='b';
    // 双指针
    int r = s.size()-1,l=0;
    while(l<=r){
        // int  f=1;
        // 如果不满足条件
        if(m.find(s[l])==m.end()||m[s[l]]!=s[r]){
            f=0;
            // 退出
            break;
        }
        l++,
        r--;
    }
    cout<<(f?"Yes":"No")<<"\n";
    // set<char>st1,st2;
    // char a1[10]={'i','l','m','n','o','u','v','w','x'},a2[10]={'p','q','b','d'};
    // int n = s.size();
    // int na1 = strlen(a1),na2=strlen(a2);
    // for(int i=0;i<na1;i++){
    //     st1.insert(a1[i]);
    // }
    // for(int i =0;i<na2;i++){
    //     st2.insert(a2[i]);
    // }
    // for(int i=0;i<n;i++){
    //     if(st1.count(s[i])==0&&st2.count(s[i])==0)
    //     {
    //         cout<<"No"<<"\n";
    //         return ;
    //     }
    // }
    // for(int i=0;i<n/2;i++){
    //     if(s[i]=='p'&&s[n-1-i]!='q'||s[i]=='q'&&s[n-1-i]!='p'){
    //         cout<<"No"<<"\n"; 
    //         // cout<<s[i];
    //         return ;
    //     }
        
    //    else if(s[i]=='b'&&s[n-1-i]!='d'||s[i]=='d'&&s[n-1-i]!='b'){
    //         cout<<"No"<<"\n";
    //         // cout<<s[i];
    //         return ;
    //     }
    //     else if(st2.count(s[i])==0&&s[i]!=s[n-1-i]){
    //         // cout<<s[i];
    //         cout<<"No"<<"\n";
    //         return ;
    //     }
    // }
    // cout<<"Yes"<<"\n";
     
}

signed main()

{

ios::sync_with_stdio(false);

cin.tie(0);

cout.tie(0);

    int _=1;

    cin>>_;

    while(_--)

    {

        solve();

    }

    return 0;

}

// 活动地址: 牛客春招刷题训练营 - 编程打卡活动