#include <bits/stdc++.h>
inline void get(int &x) {
  static char c = getchar();
  x = 0;
  static int fh = 1;
  while (c < '0' || c > '9') fh = (c == '-') ? -1 : 1, c = getchar();
  while (c <= '9' && c >= '0') x = x * 10 + c - 48, c = getchar();
  x = x * fh;
}
inline void get(long long &x) {
  static char c = getchar();
  x = 0;
  static int fh = 1;
  while (c < '0' || c > '9') fh = (c == '-') ? -1 : 1, c = getchar();
  while (c <= '9' && c >= '0') x = x * 10 + c - 48, c = getchar();
  x = x * fh;
}
inline void putll(long long x) {
  if (x == 0) {
    putchar(48);
    return;
  }
  if (x < 0) {
    putchar('-');
    x = -x;
  }
  static int num = 0;
  static char c[25];
  while (x) c[++num] = (x % 10) + 48, x /= 10;
  while (num) putchar(c[num--]);
}
char st[100005];
char map[256];
int len;
int main() {
  scanf("%s", st);
  len = strlen(st);
  map['d'] = 'b';
  map['b'] = 'd';
  map['p'] = 'q';
  map['q'] = 'p';
  for (register int i = 0; i < (len >> 1); i++)
    if (map[st[i]] != st[len - i - 1]) {
      puts("No");
      return 0;
    }
  puts("Yes");
}
