#include <bits/stdc++.h>
using namespace std;
int n, m, a[155][155], t;
char s[151][152];
vector<int> v[152];
int main(int argc, char **argv) {
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n; ++i) {
    scanf("%s", s[i]);
    for (int j = 0; j < m; ++j)
      if (s[i][j] == 'W') v[i].push_back(j);
  }
  int t = 0;
  int pos = 0, ans = 0, d = 1;
  if (v[0].empty()) {
    int j = 1;
    while (j < n && v[j].empty()) ++j;
    t = j;
    if (j == n) {
      cout << 0 << endl;
      return 0;
    }
    int d2;
    if (j & 1)
      d2 = 0;
    else
      d2 = 1;
    if (d2)
      ans += j;
    else {
      ans += v[j].back();
      pos = v[j].back();
      ans += j;
    }
    d = d2;
  }
  for (int i = t; i < n; ++i) {
    int j = i + 1;
    while (j < n && v[j].empty()) ++j;
    if (j == n) {
      if (d)
        ans += abs(v[i].back() - pos);
      else
        ans += abs(pos - v[i].front());
      break;
    }
    if (d) {
      int d2 = d;
      if ((j - i) & 1) d2 = !d;
      if (!d2) {
        v[i].back() = max(v[i].back(), v[j].back());
        ans += abs(v[i].back() - pos);
        pos = v[i].back();
        ans += j - i;
        --j;
      } else {
        ans += abs(v[i].back() - pos);
        pos = v[i].back();
        ans += abs(pos - v[j].front());
        pos = v[j].front();
        ans += j - i;
        --j;
      }
      i = j;
      d = d2;
    } else {
      int d2 = d;
      if ((j - i) & 1) d2 = !d;
      if (d2) {
        v[i].front() = min(v[i].front(), v[j].front());
        ans += abs(pos - v[i].front());
        pos = v[i].front();
        ans += j - i;
        --j;
      } else {
        ans += abs(pos - v[i].front());
        pos = v[i].front();
        ans += abs(v[j].back() - pos);
        pos = v[j].back();
        ans += j - i;
        --j;
      }
      i = j;
      d = d2;
    }
  }
  printf("%d\n", ans);
  return 0;
}
