#include <bits/stdc++.h>
using namespace std;
void rwFile() {
  freopen(
      "task"
      ".in",
      "r", stdin);
  freopen(
      "task"
      ".out",
      "w", stdout);
}
const long long MOD = 1e9 + 7;
const int maxN = 1e6 + 10;
const long long Inf = 1e18;
long long Pow(long long b, long long e) {
  if (e == 0) return 1;
  long long x = Pow(b, e / 2);
  if (e % 2 == 0) return x * x;
  return x * x * b;
}
long long modPow(long long b, long long e = MOD - 2) {
  if (e == 0) return 1;
  long long x = modPow(b, e / 2);
  if (e % 2 == 0) return x * x % MOD;
  return (x * x % MOD) * b % MOD;
}
int mobius(int a) {
  if (a == 1) return 1;
  int c = 0;
  for (int i = 2; i <= a; i++) {
    if (a % i == 0) {
      int p = 0;
      while (a % i == 0) {
        a /= i;
        p++;
      }
      if (p > 1) return 0;
      c++;
    }
  }
  if (c % 2 == 0) return 1;
  return -1;
}
long long preSum2(long long a) {
  long long res = a * (a + 1) % MOD;
  res = res * (2 * a + 1) % MOD;
  res = res * ((MOD + 1) / 6) % MOD;
  return res;
}
long long preSum3(long long a) {
  long long res = a * (a + 1) % MOD;
  res = res * ((MOD + 1) / 2) % MOD;
  res = res * res % MOD;
  return res;
}
long long G(long long n, int e) {
  if (e == 2) {
    long long res = 0;
    long long start = 2;
    while (start * start <= n) {
      long long tmp = n / start / start;
      long long endd = n / tmp;
      endd = sqrtl(endd);
      long long Sum = preSum2(endd) - preSum2(start - 1);
      Sum = (Sum + MOD) % MOD;
      res += (tmp % MOD) * Sum % MOD;
      start = endd + 1;
    }
    return res;
  }
  if (e == 3) {
    long long res = 0;
    long long start = 2;
    while (start * start * start <= n) {
      long long tmp = n / start / start / start;
      long long endd = n / tmp;
      endd = cbrtl(endd);
      long long Sum = preSum3(endd) - preSum3(start - 1);
      Sum = (Sum + MOD) % MOD;
      res += (tmp % MOD) * Sum % MOD;
      start = endd + 1;
    }
    return res;
  }
  int mob = mobius(e);
  if (!mob) return 0;
  long long Max = (long long)pow(10., 18. / e);
  long long res = 0;
  for (long long i = 2; i <= Max; i++) {
    long long tmp = Pow(i, e);
    if (tmp > n) break;
    long long temp = (n / tmp) % MOD;
    temp = temp * (tmp % MOD) % MOD;
    res = (res + temp) % MOD;
  }
  if (mob == 1) return (MOD - res) % MOD;
  return res;
}
void PPDIV() {
  int t;
  cin >> t;
  while (t--) {
    long long n;
    cin >> n;
    long long res = n;
    for (int i = 2; i < 60; i++) {
      if (Pow(2, i) > n) break;
      res += G(n, i);
      res %= MOD;
    }
    cout << res << '\n';
  }
}
void solveA_BlackAndWhiteCube() {
  int k;
  cin >> k;
  if (k % 2 == 1) {
    cout << -1;
    return;
  }
  char one = 'b', two = 'w';
  for (int i = 0; i < k; i++) {
    string res[k];
    char a = one, b = two;
    for (int j = 0; j < k; j++) {
      if (j == 0) {
        for (int l = 0; l < k; l++) res[j] += a;
        continue;
      }
      if (j >= k / 2) {
        res[j] = res[k - 1 - j];
        continue;
      }
      res[j] = res[j - 1];
      for (int l = j; l < k - j; l++) {
        res[j][l] = b;
      }
      swap(a, b);
    }
    for (string str : res) {
      cout << str << '\n';
    }
    cout << '\n';
    swap(one, two);
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(nullptr);
  cout.tie(nullptr);
  solveA_BlackAndWhiteCube();
}
