#include <bits/stdc++.h>
using namespace std;
using uint = unsigned int;
using ll = long long;
using pii = pair<int, int>;
#define dbg(x) cerr<<#x": "<<(x)<<'\n'
#define dbg_v(x, n) cerr<<#x"[]: ";for(long long _=0;_<n;++_)cerr<<(x)[_]<<' ';cerr<<'\n'
#define all(v) v.begin(), v.end()
#define INF 10000000

int dp[101][30][30];
char s[105];
char t[3][30] = {"QWERTYUIOP\0", "ASDFGHJKL\0", "ZXCVBNM\0"};
pii pos[30];

int dist(int c1, int c2)
{
	return abs(pos[c1].first - pos[c2].first) + abs(pos[c1].second - pos[c2].second);
}

int main()
{
#ifndef ONLINE_JUDGE
	freopen("data.in", "r", stdin);
	freopen("data.out", "w", stdout);
#endif
	ios_base::sync_with_stdio(false);

	int i, j, k, ans, l;

	for(i = 0; i < 3; ++i)
		for(j = 0; t[i][j]; ++j)
			pos[t[i][j] - 'A'] = {i, j};

	for(i = 0; i < 101; ++i)
		for(j = 0; j < 30; ++j)
			for(k = 0; k < 30; ++k)
				dp[i][j][k] = INF;

	dp[0]['F' - 'A']['J' - 'A'] = 0;

	cin >> (s + 1);

	for(i = 1; s[i]; ++i)
		for(j = 0; j < 26; ++j)
			for(k = 0; k < 26; ++k)
			{
				if(j == s[i] - 'A')
				{
					for(l = 0; l < 26; ++l)
						dp[i][j][k] = min(dp[i][j][k], dp[i - 1][l][k] + dist(l, j));
				}
				if(k == s[i] - 'A')
				{
					for(l = 0; l < 26; ++l)
						dp[i][j][k] = min(dp[i][j][k], dp[i - 1][j][l] + dist(l, k));
				}
			}

	for(ans = INF, j = 0; j < 26; ++j)
		for(k = 0; k < 26; ++k)
			ans = min(ans, dp[i - 1][j][k]);

	/*dbg(dp[1]['Q' - 'A']['J' - 'A']);
	dbg(dp[2]['Q' - 'A']['K' - 'A']);
	dbg(dp[3]['Q' - 'A']['L' - 'A']);*/

	cout << ans << '\n';

	return 0;
}