#include <bits/stdc++.h> using namespace std; using uint = unsigned int; using ll = long long; using pii = pair<int, int>; #define dbg(x) cerr<<#x": "<<(x)<<'\n' #define dbg_v(x, n) cerr<<#x"[]: ";for(long long _=0;_<n;++_)cerr<<(x)[_]<<' ';cerr<<'\n' #define all(v) v.begin(), v.end() #define INF 10000000 int dp[101][30][30]; char s[105]; char t[3][30] = {"QWERTYUIOP\0", "ASDFGHJKL\0", "ZXCVBNM\0"}; pii pos[30]; int dist(int c1, int c2) { return abs(pos[c1].first - pos[c2].first) + abs(pos[c1].second - pos[c2].second); } int main() { #ifndef ONLINE_JUDGE freopen("data.in", "r", stdin); freopen("data.out", "w", stdout); #endif ios_base::sync_with_stdio(false); int i, j, k, ans, l; for(i = 0; i < 3; ++i) for(j = 0; t[i][j]; ++j) pos[t[i][j] - 'A'] = {i, j}; for(i = 0; i < 101; ++i) for(j = 0; j < 30; ++j) for(k = 0; k < 30; ++k) dp[i][j][k] = INF; dp[0]['F' - 'A']['J' - 'A'] = 0; cin >> (s + 1); for(i = 1; s[i]; ++i) for(j = 0; j < 26; ++j) for(k = 0; k < 26; ++k) { if(j == s[i] - 'A') { for(l = 0; l < 26; ++l) dp[i][j][k] = min(dp[i][j][k], dp[i - 1][l][k] + dist(l, j)); } if(k == s[i] - 'A') { for(l = 0; l < 26; ++l) dp[i][j][k] = min(dp[i][j][k], dp[i - 1][j][l] + dist(l, k)); } } for(ans = INF, j = 0; j < 26; ++j) for(k = 0; k < 26; ++k) ans = min(ans, dp[i - 1][j][k]); /*dbg(dp[1]['Q' - 'A']['J' - 'A']); dbg(dp[2]['Q' - 'A']['K' - 'A']); dbg(dp[3]['Q' - 'A']['L' - 'A']);*/ cout << ans << '\n'; return 0; }