#include <cstdio>
#include <algorithm>

#define MAXN 100

#define INF 1000000

char a[3][10]={
{
    'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'
},
{
    'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 0
},
{
    'Z', 'X', 'C', 'V', 'B', 'N', 'M', 0, 0, 0
}
};

int dp[MAXN+1][26][26];

int lin[26], col[26];

inline int man(int a, int b){
    return std::abs(lin[a]-lin[b])+std::abs(col[a]-col[b]);
}

int main(){

    for(int i=0; i<3; i++)
        for(int j=0; j<10; j++)
            if(a[i][j])
                lin[a[i][j]-'A']=i, col[a[i][j]-'A']=j;

    char ch=fgetc(stdin);
    int n=0;
    for(int i=0; i<26; i++)
        for(int j=0; j<26; j++)
            dp[0][i][j]=INF;
    dp[0]['F'-'A']['J'-'A']=0;
    while(ch!='\n'){
        n++;
        for(int i=0; i<26; i++)
            for(int j=0; j<26; j++)
                dp[n][i][j]=INF;
        for(int i=0; i<26; i++)
            for(int j=0; j<26; j++)
                dp[n][i][ch-'A']=std::min(dp[n][i][ch-'A'], dp[n-1][i][j]+man(ch-'A', j));
        for(int i=0; i<26; i++)
            for(int j=0; j<26; j++)
                dp[n][ch-'A'][i]=std::min(dp[n][ch-'A'][i], dp[n-1][j][i]+man(ch-'A', j));
        ch=fgetc(stdin);
    }

    int ans=dp[n][0][0];
    for(int i=0; i<26; i++)
        for(int j=0; j<26; j++)
            ans=std::min(ans, dp[n][i][j]);

    printf("%d\n", ans);

    return 0;
}