#include <iostream>
#include<map>
#include<stdlib.h>
using namespace std;


map<char, pair<int, int> > chars;

unsigned int dist(char a, char b){
    return abs(chars[a].first -chars[b].first) + abs(chars[a].second -chars[b].second);
}



int main()
{
    string s="QWERTYUIOP";
    for(int i=0; i<s.size(); i++)
    chars[s[i]] = {0, i};


     s="ASDFGHJKL";
    for(int i=0; i<s.size(); i++)
    chars[s[i]] = {1, i};


     s="ZXCVBNM";
    for(int i=0; i<s.size(); i++)
    chars[s[i]] = {2, i};


    cin>>s;
    int len = s.size();

    unsigned int dp[110][30][30];
 for(int k=0; k<=len; k++){
    for(int l=0; l<26; l++){
        for(int r=0; r<26; r++){
            dp[k][l][r]=-1;

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

    for(int k=1; k<=len; k++){

        //dp[k][s[k-1]][j]
        for(int j=0; j<26; j++){

            for(int l=0; l<26; l++){
                if(dp[k-1][l][j]!=-1)
                dp[k][s[k-1]-'A'][j] = min(dp[k][s[k-1]-'A'][j],  dp[k-1][l][j]+dist(l+'A', s[k-1]));
            }
        }
        for(int l=0; l<26; l++){

            for(int r=0; r<26; r++){
            if(dp[k-1][l][r]!=-1)
                dp[k][l][s[k-1]-'A'] = min(dp[k][l][s[k-1]-'A'],  dp[k-1][l][r]+dist(r+'A', s[k-1]));
            }
        }
    }

    unsigned int sol=-1LL;
     for(int l=0; l<26; l++){
        for(int r=0; r<26; r++){
            sol = min(dp[len][l][r], sol);

        }
     }

    cout<<sol;
    return 0;
}