#include <asm-generic/errno.h>
#include <iostream>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
int arr[510][510] = {0};
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
char a;
cin >> a;
if (a == 'l') {
if (i > 0 && j > 0) {
arr[i][j] = max(arr[i][j - 1], arr[i - 1][j]) + 4;
} else if (i > 0 && j == 0) {
arr[i][j] = arr[i - 1][j] + 4;
} else if (j > 0 && i == 0) {
arr[i][j] = arr[i][j - 1] + 4;
} else {
arr[i][j] += 4;
}
} else if (a == 'o') {
if (i > 0 && j > 0) {
arr[i][j] = max(arr[i][j - 1], arr[i - 1][j]) + 3;
} else if (i > 0 && j == 0) {
arr[i][j] = arr[i - 1][j] + 3;
} else if (j > 0 && i == 0) {
arr[i][j] = arr[i][j - 1] + 3;
} else {
arr[i][j] += 3;
}
} else if (a == 'v') {
if (i > 0 && j > 0) {
arr[i][j] = max(arr[i][j - 1], arr[i - 1][j]) + 2;
} else if (i > 0 && j == 0) {
arr[i][j] = arr[i - 1][j] + 2;
} else if (j > 0 && i == 0) {
arr[i][j] = arr[i][j - 1] + 2;
} else {
arr[i][j] += 2;
}
} else if (a == 'e') {
if (i > 0 && j > 0) {
arr[i][j] = max(arr[i][j - 1], arr[i - 1][j]) + 1;
} else if (i > 0 && j == 0) {
arr[i][j] = arr[i - 1][j] + 1;
} else if (j > 0 && i == 0) {
arr[i][j] = arr[i][j - 1] + 1;
} else {
arr[i][j] += 1;
}
} else {
if (i > 0 && j > 0) {
arr[i][j] = max(arr[i][j - 1], arr[i - 1][j]);
} else if (i > 0 && j == 0) {
arr[i][j] = arr[i - 1][j];
} else if (j > 0 && i == 0) {
arr[i][j] = arr[i][j - 1];
}
}
}
}
cout<<arr[n-1][m-1]<<endl;
return 0;
}
// 64 位输出请用 printf("%lld")