#include <bits/stdc++.h>
using namespace std;
struct Node {
  int r, l;
};
int n, m, End, ans, vis;
int main() {
  int x = 0;
  Node temp, a;
  scanf("%d %d", &n, &m);
  for (int i = 1; i <= n; i++) {
    getchar();
    int flag = 0;
    char ch;
    for (int j = 0; j < m; j++) {
      ch = getchar();
      if (ch == 'W') {
        if (flag) {
          a.r = j;
        } else {
          a.l = j;
          a.r = j;
        }
        flag = 1;
        End = i - 1;
      }
    }
    if (flag) {
      if (!vis) {
        if (x) {
          if (x % 2) {
            ans += a.r;
          } else {
            a.l = 0;
          }
        } else {
          ans += a.l;
        }
        temp = a;
        x = 0;
        vis = 1;
      } else {
        if (x == 0 || x % 2 == 0) {
          if (i % 2) {
            a.l = min(temp.l, a.l);
            ans += temp.r - a.l;
            temp = a;
          } else {
            a.r = max(temp.r, a.r);
            ans += a.r - temp.l;
            temp = a;
          }
        } else if (x % 2) {
          if (i % 2) {
            ans += temp.r - temp.l;
            if (temp.r > a.l)
              ans += temp.r - a.l;
            else
              ans += a.l - temp.r;
            temp = a;
          } else {
            ans += temp.r - temp.l;
            if (temp.l < a.r)
              ans += a.r - temp.l;
            else
              ans += temp.l - a.r;
            temp = a;
          }
        }
        x = 0;
      }
    } else
      x++;
  }
  if (vis) ans += temp.r - temp.l;
  printf("%d", ans + End);
  return 0;
}
