#include <bits/stdc++.h>
using namespace std;
const int maxn = 105;
inline int read() {
  char c = getchar();
  int t = 0, f = 1;
  while (!isdigit(c)) {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (isdigit(c)) {
    t = (t << 3) + (t << 1) + (c ^ 48);
    c = getchar();
  }
  return t * f;
}
int n;
char mp[maxn][maxn];
const int dx[8] = {-2, -1, 1, 2, 2, 1, -1, -2};
const int dy[8] = {-1, -2, 2, 1, -1, -2, 2, 1};
void bfs(int x, int y) {
  queue<pair<int, int> > q;
  while (!q.empty()) q.pop();
  q.push(pair<int, int>(x, y));
  while (!q.empty()) {
    int a = q.front().first, b = q.front().second;
    q.pop();
    for (int i = 0; i < 8; i++) {
      if (a + dx[i] < 1 || a + dx[i] > n || b + dy[i] < 1 || b + dy[i] > n)
        continue;
      if (mp[a + dx[i]][b + dy[i]]) continue;
      mp[a + dx[i]][b + dy[i]] = mp[a][b] == 'W' ? 'B' : 'W';
      q.push(pair<int, int>(a + dx[i], b + dy[i]));
    }
  }
}
int main() {
  n = read();
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      if (!mp[i][j]) {
        mp[i][j] = 'W';
        bfs(i, j);
      }
    }
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) printf("%c", mp[i][j]);
    puts("");
  }
  return 0;
}
