#include using namespace std; int mem[150][30][30]; int n; int dist[50][50]; vector key(3); string s; int ret(int poz, int left, int right) { if(poz == n) return 0; if(mem[poz][left][right] >= 0) return mem[poz][left][right]; int &ans = mem[poz][left][right]; ans = 1e9; ans = min(ret(poz + 1, s[poz], right) + dist[left][s[poz]], ret(poz + 1, left, s[poz]) + dist[right][s[poz]]); return ans; } int main() { cin >> s; n = s.size(); for(int i = 0; i < n; ++i) s[i] -= 'A'; memset(mem, -1, sizeof(mem)); key[0] = "QWERTYUIOP"; key[1] = "ASDFGHJKL"; key[2] = "ZXCVBNM"; for(int i = 0; i < 3; ++i) for(int j = 0; j < int(key[i].size()); ++j) for(int k = 0; k < 3; ++k) for(int l = 0; l < int(key[k].size()); ++l) dist[key[i][j] - 'A'][key[k][l] - 'A'] = abs(i - k) + abs(j - l); cout << ret(0, 'F'- 'A', 'J' - 'A') << "\n"; }