Consider a table of size n × m, initially fully white. Rows are numbered 1 through n from top to bottom, columns 1 through m from left to right. Some square inside the table with odd side length was painted black. Find the center of this square.

Input

The first line contains two integers n and m (1 ≤ n, m ≤ 115) — the number of rows and the number of columns in the table.

The i-th of the next n lines contains a string of m characters s_{i1} s_{i2} … s_{im} (s_{ij} is 'W' for white cells and 'B' for black cells), describing the i-th row of the table.

Output

Output two integers r and c (1 ≤ r ≤ n, 1 ≤ c ≤ m) separated by a space — the row and column numbers of the center of the black square.

Examples

Input

5 6
WWBBBW
WWBBBW
WWBBBW
WWWWWW
WWWWWW


Output

2 4


Input

3 3
WWW
BWW
WWW


Output

2 1
#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
long long fp(long long x, long long exp) {
  if (exp == 0) return 1;
  if (exp % 2 == 0) return fp((x * x) % 1000000007, exp / 2) % 1000000007;
  return (((fp((x * x) % 1000000007, exp / 2)) % 1000000007) * x) % 1000000007;
}
long long gcd(long long a, long long b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
long long fact[1000006], inv[1000006];
void calcFacAndInv(long long n) {
  fact[0] = inv[0] = 1;
  for (long long i = 1; i <= n; i++)
    fact[i] = (i * fact[i - 1]) % 1000000007,
    inv[i] = fp(fact[i], 1000000007 - 2);
}
long long ncr(long long n, long long r) {
  return ((fact[n] * inv[r]) % 1000000007 * inv[n - r]) % 1000000007;
}
long long npr(long long n, long long r) {
  return (fact[n] * inv[n - r]) % 1000000007;
}
vector<bool> prime(10000001, true);
void sieve(int n) {
  prime[0] = prime[1] = false;
  for (int i = 2; i <= n; i++)
    for (int j = i * i; j <= n && prime[i] && i * 1ll * i <= n; j += i)
      prime[j] = false;
}
int par[200005], rnk[200005];
int findp(int x) {
  if (par[x] == x) return x;
  return par[x] = findp(par[x]);
}
bool iscon(int x, int y) {
  if (findp(x) == findp(y)) return true;
  return false;
}
void con(int x, int y) {
  int px = findp(x), py = findp(y);
  if (rnk[px] > rnk[py])
    par[py] = px;
  else if (rnk[px] < rnk[py])
    par[px] = py;
  else
    par[px] = py, rnk[px]++;
}
double dis(double x, double y) { return sqrt(x * x + y * y); }
void dij() {}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  ios_base::sync_with_stdio(0);
  int n, m, c = 0, y;
  char x;
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    c = 0;
    y = -1;
    for (int j = 1; j <= m; j++) {
      cin >> x;
      if (x == 'B') {
        c++;
        if (y == -1) y = j;
      }
    }
    if (c % 2) return cout << i + c / 2 << " " << y + c / 2, 0;
  }
  return 0;
}
