#include <bits/stdc++.h>

using namespace std;

vector<string> keyboard = {
	"QWERTYUIOP",
	"ASDFGHJKL",
	"ZXCVBNM"
};

pair<int, int> GetPos(char a) {
	static pair<int, int> pos[256];

	auto &ret = pos[a];
	if(ret.first != 0) return ret;
	for(int i = 0; i < 3; ++i)
		for(int j = 0; j < keyboard[i].size(); ++j)
			if(keyboard[i][j] == a)
				return ret = {i + 1, j + 1};
	assert(false);
}

int Dist(char a, char b) {
	auto p = GetPos(a);
	auto q = GetPos(b);

	return abs(p.first - q.first) + abs(p.second - q.second);
}

int Old[256][256], Now[256][256];

int main() {

	string str;
	cin >> str;

	memset(Old, -1, sizeof(Old));
	Old['F']['J'] = 0;
	for(auto &c : str) {
		memset(Now, -1, sizeof(Now));
		for(char a = 'A'; a <= 'Z'; ++a)
			for(char b = 'A'; b <= 'Z'; ++b) {
				if(Old[a][b] == -1) continue;

				if(Now[c][b] == -1 || Now[c][b] > Old[a][b] + Dist(a, c))
					Now[c][b] = Old[a][b] + Dist(a, c);
				if(Now[a][c] == -1 || Now[a][c] > Old[a][b] + Dist(b, c))
					Now[a][c] = Old[a][b] + Dist(b, c);
			}
		swap(Old, Now);
	}

	int ans = 1e9;
	for(char c = 'A'; c <= 'Z'; ++c)
		for(char b = 'A'; b <= 'Z'; ++b)
			if(Old[b][c] != -1)
				ans = min(ans, Old[b][c]);
	cout << ans << endl;

	return 0;
}