#include <bits/stdc++.h>
using namespace std;
struct coord {
  int x, y;
};
bool valid(int x, int y, int n) {
  if (x < 0 || y < 0 || x >= n || y >= n) {
    return false;
  }
  return true;
}
int main() {
  int n = 3;
  cin >> n;
  char arr[n][n];
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      arr[i][j] = 'N';
    }
  }
  int count = n * n;
  arr[0][0] = 'W';
  coord c;
  c.x = 0;
  c.y = 0;
  queue<coord> q;
  q.push(c);
  int xx[8] = {2, 2, 1, 1, -1, -1, -2, -2};
  int yy[8] = {1, -1, 2, -2, 2, -2, 1, -1};
  while (!q.empty()) {
    coord t = q.front();
    q.pop();
    for (int i = 0; i < 8; i++) {
      int new_x = t.x - xx[i];
      int new_y = t.y - yy[i];
      if (valid(new_x, new_y, n) && arr[new_y][new_x] == 'N') {
        coord nc;
        nc.x = new_x;
        nc.y = new_y;
        if (arr[t.y][t.x] == 'W') {
          arr[new_y][new_x] = 'B';
        } else {
          arr[new_y][new_x] = 'W';
        }
        q.push(nc);
      }
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      if (arr[i][j] == 'N') {
        arr[i][j] = 'W';
      }
      cout << arr[i][j];
    }
    cout << endl;
  }
}
