#include <bits/stdc++.h>
using namespace std;

#define PER(i,a) for (int i = a-1; i >= 0; i--)
#define REP(i,a) for (int i = 0; i < a; i++)
#define FOR(i,a,b) for (int i = a; i <= b; i++)
#define ROF(i,a,b) for (int i = a; i >= b; i--)
#define FOREACH(it,x) for (__typeof((x).begin()) it = (x).begin(); it != (x).end(); it++)
#define all(x) (x).begin(),(x).end()
#define ll long long
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define pii pair<int,int>
#define SZ(x) ((int)(x).size())

const int inf = 1<<20;

int dist[26][26];
string ss[3] = { "QWERTYUIOP",
                "ASDFGHJKL ",
                "ZXCVBNM   "};
pii pos[26];
int dp[101][26][26];

int main()
{

    REP(i,3) REP(j,10) if (isalpha(ss[i][j])) {
        pos[ss[i][j]-'A'] = mp(i,j);
    }

    REP(i,26) REP(j,26) {
        dist[i][j] = abs(pos[i].fi-pos[j].fi) +
                    abs(pos[i].se-pos[j].se);
    }

    string s; cin >> s;

    REP(i,101) REP(j,26) REP(k,26) dp[i][j][k] = inf;

    dp[0]['F'-'A']['J'-'A'] = 0;
    dp[0]['J'-'A']['F'-'A'] = 0;

    REP(i,SZ(s)) {
        int c = s[i] - 'A';
        REP(j,26) {
            REP(k,26) {
                dp[i+1][j][c] = min(dp[i+1][j][c],dp[i][j][k] + dist[k][c]);
                dp[i+1][c][j] = min(dp[i+1][c][j],dp[i][k][j] + dist[k][c]);
            }
        }
    }

    int Minim = inf;
    REP(i,26) REP(j,26) Minim = min(Minim,dp[SZ(s)][i][j]);
    cout << Minim;
}