#include <bits/stdc++.h>
#define pb push_back
#define NMAX 1005
#define ll long long
#define x first
#define y second
#define INF 0x3f3f3f3f
#define MOD 3210121

using namespace std;

//ifstream fin("fisier.in");
//ofstream fout("fisier.out");

char s[105];
char jeg[30]="QWERTYUIOPASDFGHJKLZXCVBNM";
int dp[105][30][30];
pair<int,int> v[30];

inline int dist(int i, int j) {
	return abs(v[i].x-v[j].x)+abs(v[i].y-v[j].y);
}

int main() {
	int i,k,j,n,ans=INF;

	cin>>(s+1);
	n=strlen(s+1);
	for(i=1;i<=n;++i) s[i]-='A';

	for(i=0;i<10;++i) v[jeg[i]-'A']={0,i};
	for(i=0;i<9;++i)
		v[jeg[i+10]-'A']={1,i};
	for(i=0;i<7;++i) v[jeg[i+19]-'A']={2,i};

	for(i=0;i<26;++i)
		for(j=0;j<26;++j) dp[0][i][j]=INF;
	memset(dp,INF,sizeof(dp));

	dp[0]['F'-'A']['J'-'A']=dp[0]['J'-'A']['F'-'A']=0;
	for(i=1;i<=n;++i) {
		for(j=0;j<26;++j) {
			for(k=0;k<26;++k) {
				dp[i][s[i]][k]=min(dp[i][s[i]][k],dp[i-1][j][k]+dist((int)s[i],j));
				dp[i][j][s[i]]=min(dp[i][j][s[i]],dp[i-1][j][k]+dist((int)s[i],k));

				if(i==n) ans=min(ans,min(dp[i][s[i]][k],dp[i][j][s[i]]));
			}
		}
	}

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

	return 0;
}