#include #include #include #include #include #include #include #include #include using namespace std; //struct aaa{aaa(){cin.tie(nullptr); ios::sync_with_stdio(false); cout< TP; int dx[4]={1,0,-1,0}; int dy[4]={0,1,0,-1}; int h,w; vector a; vector> ans; priority_queue, greater<>> q; void bfs() { q.emplace(0, 0, 0, 0); int c,kc,x,y; while(!q.empty()) { tie(c, kc, x,y) = q.top(); q.pop(); if (x < 0 || x >= w) continue; if (y < 0 || y >= h) continue; if (ans[y][x] >= 0) continue; ans[y][x] = c; if (a[y][x] == 'k') { c = c*2 + 1 - kc; kc++; } else c++; for (int i=0; i<4; i++) { int xi = x + dx[i]; int yi = y + dy[i]; if (xi < 0 || xi >= w) continue; if (yi < 0 || yi >= h) continue; q.emplace(c, kc, xi, yi); } } } int main() { cin >> h >> w; a = vector(h); for (int i=0; i> a[i]; ans = vector>(h, vector (w,-1)); bfs(); cout << ans[h-1][w-1] << endl; }