#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")