#include <bits/stdc++.h>
using namespace std;
const double EPS = 1e-9;
const int INF = 0x7f7f7f7f;
const double PI = acos(-1.0);
template <class T>
inline T _abs(T n) {
  return ((n) < 0 ? -(n) : (n));
}
template <class T>
inline T _max(T a, T b) {
  return (!((a) < (b)) ? (a) : (b));
}
template <class T>
inline T _min(T a, T b) {
  return (((a) < (b)) ? (a) : (b));
}
template <class T>
inline T _swap(T& a, T& b) {
  T temp = a;
  a = b;
  b = temp;
}
template <class T>
inline T gcd(T a, T b) {
  return (b) == 0 ? (a) : gcd((b), ((a) % (b)));
}
template <class T>
inline T lcm(T a, T b) {
  return ((a) / gcd((a), (b)) * (b));
}
struct debugger {
  template <typename T>
  debugger& operator,(const T& v) {
    cerr << v << " ";
    return *this;
  }
} dbg;
int main() {
  string st[8];
  while (getline(cin, st[0])) {
    for (int i = 1; i < 8; i++) getline(cin, st[i]);
    int flg = 1;
    for (int i = 0; i < 8 && flg; i++) {
      for (int j = 1; j < 8 && flg; j++) {
        if (st[i][j - 1] == st[i][j]) flg = 0;
      }
    }
    if (flg)
      printf("YES\n");
    else
      printf("NO\n");
  }
  return 0;
}
