#include using namespace std; const int MAXN = 100 + 10; int x[400], y[400]; int d[MAXN][26][26]; void smin(int &a, int b){a = min(a, b);} int get(int a, int b){ return abs(x[a] - x[b]) + abs(y[a] - y[b]); } int main(){ x['Q'] = 0, y['Q'] = 0; x['W'] = 0, y['W'] = 1; x['E'] = 0, y['E'] = 2; x['R'] = 0, y['R'] = 3; x['T'] = 0, y['T'] = 4; x['Y'] = 0, y['Y'] = 5; x['U'] = 0, y['U'] = 6; x['I'] = 0, y['I'] = 7; x['O'] = 0, y['O'] = 8; x['P'] = 0, y['P'] = 9; x['A'] = 1, y['A'] = 0; x['S'] = 1, y['S'] = 1; x['D'] = 1, y['D'] = 2; x['F'] = 1, y['F'] = 3; x['G'] = 1, y['G'] = 4; x['H'] = 1, y['H'] = 5; x['J'] = 1, y['J'] = 6; x['K'] = 1, y['K'] = 7; x['L'] = 1, y['L'] = 8; x['Z'] = 2, y['Z'] = 0; x['X'] = 2, y['X'] = 1; x['C'] = 2, y['C'] = 2; x['V'] = 2, y['V'] = 3; x['B'] = 2, y['B'] = 4; x['N'] = 2, y['N'] = 5; x['M'] = 2, y['M'] = 6; string s; cin >> s; memset(d, 63, sizeof(d)); d[0]['F'-'A']['J'-'A'] = 0; for (int cur = 0; cur < s.size(); cur++){ char c = s[cur]; for (int i = 0; i < 26; i++) for (int j = 0; j < 26; j++){ smin(d[cur + 1][i][c - 'A'], d[cur][i][j] + get(j + 'A', c)); smin(d[cur + 1][c - 'A'][j], d[cur][i][j] + get(i + 'A', c)); } } int ans = 1e9; for (int i = 0; i < 26; i++) for (int j = 0; j < 26; j++) ans = min(ans, d[s.size()][i][j]); cout << ans << endl; return 0; }