#include <bits/stdc++.h>

using namespace std;

const int inf = 1e8;

int i, j, k, dist[30][30], dp[105][30][30], id, x[30], y[30];
string s;

int l(char c)
{
    return c-'A';
}

int sq(int x)
{
    if(x<0) return -x;
    return x;
}

int main()
{
 //   freopen("input", "r", stdin);
 //   freopen("output", "w", stdout);

    cin >> s;
    for(i=0; i<26; ++i)
        for(j=0; j<26; ++j)
            dp[0][i][j] = inf;

    x[l('Q')] = x[l('W')] = x[l('E')] = x[l('R')]= x[l('T')]= x[l('Y')]= x[l('U')]= x[l('I')]= x[l('O')]= x[l('P')] = 0;
    x[l('A')] = x[l('S')] = x[l('D')] = x[l('F')]= x[l('G')]= x[l('H')]= x[l('J')]= x[l('K')]= x[l('L')] = 1;
    x[l('Z')] = x[l('X')] = x[l('C')] = x[l('V')]= x[l('B')]= x[l('N')]= x[l('M')] = 2;

    y[l('Q')] = y[l('A')] = y[l('Z')] = 0;
    y[l('W')] = y[l('S')] = y[l('X')] = 1;
    y[l('E')] = y[l('D')] = y[l('C')] = 2;
    y[l('R')] = y[l('F')] = y[l('V')] = 3;
    y[l('T')] = y[l('G')] = y[l('B')] = 4;
    y[l('Y')] = y[l('H')] = y[l('N')] = 5;
    y[l('U')] = y[l('J')] = y[l('M')] = 6;
    y[l('I')] = y[l('K')] = 7;
    y[l('O')] = y[l('L')] = 8;
    y[l('P')] = 9;


    for(i=0; i<26; ++i)
        for(j=0; j<26; ++j)
            dist[i][j] = sq(x[i]-x[j]) + sq(y[i]-y[j]);


    dp[0][l('F')][l('J')] = 0;

    for(i=0; i<s.size(); ++i)
    {
        s[i] -= 'A';

        for(j=0; j<26; ++j)
            for(k=0; k<26; ++k)
            {
                dp[i+1][j][k] = inf;

                if(j==s[i] || k==s[i])
                    for(id=0; id<26; ++id)
                        dp[i+1][j][k] = min(dp[i+1][j][k], min( dp[i][j][id] + dist[id][k], dp[i][id][k] + dist[id][j] ) );
            }
    }

    int ans = inf;
    for(i=0; i<26; ++i)
        for(j=0; j<26; ++j)
            ans = min(ans, dp[s.size()][i][j]);

    cout << ans << '\n';


    return 0;
}