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

struct tasta {int lin; int col;};

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

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

int col(char c)
{
    if (c=='Q'||c=='A'||c=='Z')
        return 1;
    if (c=='W'||c=='S'||c=='X')
        return 2;
    if (c=='E'||c=='D'||c=='C')
        return 3;
    if (c=='R'||c=='F'||c=='V')
        return 4;
    if (c=='T'||c=='G'||c=='B')
        return 5;
    if (c=='Y'||c=='H'||c=='N')
        return 6;
    if (c=='U'||c=='J'||c=='M')
        return 7;
    if (c=='I'||c=='K')
        return 8;
    if (c=='O'||c=='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')
    {
        next.lin=lin(c); next.col=col(c);
        dist_st=max(st.lin,next.lin)-min(st.lin,next.lin)+max(st.col,next.col)-min(st.col,next.col);
        dist_dr=max(dr.lin,next.lin)-min(dr.lin,next.lin)+max(dr.col,next.col)-min(dr.col,next.col);
        if (dist_st<dist_dr)
            swap(st,next);
        else
            swap(dr,next);
        cost+=min(dist_st,dist_dr);
        c=cin.get();
    }
    cout<<cost;
    return 0;
}