#include <bits/stdc++.h>
using namespace std;
const int N = 1e2 + 5;
char grid[N][N];
char mxgrid[N][N];
int n;
long long mx;
int vis[N][N];
int dir[] = {-1, 1, -1, 1, -2, 2, -2, 2};
int dic[] = {2, 2, -2, -2, 1, 1, -1, -1};
bool valid(int r, int c) {
  return r >= 0 && c >= 0 && r < n && c < n && grid[r][c] == '.';
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++) grid[i][j] = '.';
  grid[0][0] = 'W';
  queue<pair<int, int>> q;
  q.push({0, 0});
  while (!q.empty()) {
    int ur = q.front().first;
    int uc = q.front().second;
    char c = grid[ur][uc];
    q.pop();
    for (int i = 0; i < 8; i++) {
      int vr = ur + dir[i];
      int vc = uc + dic[i];
      if (valid(vr, vc)) {
        if (c == 'W')
          grid[vr][vc] = 'B';
        else
          grid[vr][vc] = 'W';
        q.push({vr, vc});
      }
    }
  }
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++)
      if (grid[i][j] == '.') grid[i][j] = 'B';
  for (int i = 0; i < n; i++) cout << grid[i] << endl;
  return 0;
}
