///greedy
#include <iostream>
using namespace std;

struct tasta {int lin; int col;};

char c;
int cost,dist_st,dist_dr;
tasta st,dr,urmator;

int linie(char x)
{
    if (x=='Q'||x=='W'||x=='E'||x=='R'||x=='T'||x=='Y'||x=='U'||x=='I'||x=='O'||x=='P')
        return 1;
    if (x=='A'||x=='S'||x=='D'||x=='F'||x=='G'||x=='H'||x=='J'||x=='K'||x=='L')
        return 2;
    else
        return 3;
}

int coloana(char x)
{
    if (x=='Q'||x=='A'||x=='Z')
        return 1;
    if (x=='W'||x=='S'||x=='X')
        return 2;
    if (x=='E'||x=='D'||x=='C')
        return 3;
    if (x=='R'||x=='F'||x=='V')
        return 4;
    if (x=='T'||x=='G'||x=='B')
        return 5;
    if (x=='Y'||x=='H'||x=='N')
        return 6;
    if (x=='U'||x=='J'||x=='M')
        return 7;
    if (x=='I'||x=='K')
        return 8;
    if (x=='O'||x=='L')
        return 9;
    return 10;
}

int main()
{
    st.lin=2; st.col=4;
    dr.lin=2; dr.col=7;
    c=cin.get();
    while (c!='\n')
    {
        urmator.lin=linie(c); urmator.col=coloana(c);
        dist_st=max(st.lin,urmator.lin)-min(st.lin,urmator.lin)+max(st.col,urmator.col)-min(st.col,urmator.col);
        dist_dr=max(dr.lin,urmator.lin)-min(dr.lin,urmator.lin)+max(dr.col,urmator.col)-min(dr.col,urmator.col);
        if (dist_st<dist_dr)
            swap(st,urmator);
        else
            swap(dr,urmator);
        cost+=min(dist_st,dist_dr);
        c=cin.get();
    }
    cout<<cost;
    return 0;
}