#include using namespace std; int i, j, it, k, dp[105][105], rs = 1e9 + 69 * 69 * 69; char a[][30] = {"QWERTYUIOP", "ASDFGHJKL", "ZXCVBNM"}; string s; int getDist(char x, char y) { int dx = 0, dy = 0; for(int i = 0; i < 3; ++i) for(int j = 0; a[i][j]; ++j) if(a[i][j] == x) { dx = i; dy = j; i = 1e9; break; } for(int i = 0; i < 3; ++i) for(int j = 0; a[i][j]; ++j) if(a[i][j] == y) { dx = abs(dx - i); dy = abs(dy - j); i = 1e9; break; } return dx + dy; } int main() { ios_base::sync_with_stdio(0); cin >> s; for(i = 0; i <= 100; ++i) for(j = 0; j <= 100; ++j) dp[i][j] = 1e9 + 69 * 69; s = "FJ" + s; dp[0][1] = 0; for(i = 0; i < s.size(); ++i) for(j = 0; j < s.size(); ++j) { if(i == s.size() - 1 || j == s.size() - 1) rs = min(rs, dp[i][j]); if(dp[i][j] > 1e9) continue; int next = max(i, j) + 1; if(next == s.size()) continue; dp[next][j] = min(dp[i][j] + getDist(s[next], s[i]), dp[next][j]); dp[i][next] = min(dp[i][j] + getDist(s[next], s[j]), dp[i][next]); } cout << rs << '\n'; return 0; }