#include <iostream>
#include <vector>
#include <cmath>

using namespace std;
typedef long long int64;

const int kInf = 1e9+10;
int dp[110][26][26];

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

pair<int,int> pos(char a) {
	for (int i = 0; i < keys.size(); ++i) {
		for (int j = 0; j < keys[i].size(); ++j) {
			if (keys[i][j] == a) {
				return {i, j};
			}
		}
	}
}

int dist(char a, char b) {
	auto pa = pos(a);
	auto pb = pos(b);
	return abs(pa.first - pb.first) + abs(pa.second - pb.second);
}

void solve() {
	string s;
	cin >> s;

	for (int i = 0; i <= s.length(); ++i) {
		for (int j = 0; j < 26; ++j) {
			for (int k = 0; k < 26; ++k){
				dp[i][j][k] = kInf;
			}
		}
	}
	dp[0]['F'-'A']['J'-'A'] = 0;

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

	int ans = kInf;
	for (int j = 0; j < 26; ++j) {
		for (int k = 0; k < 26; ++k){
			ans = min(ans, dp[s.length()][j][k]);
		}
	}

	cout << ans << "\n";
}

int main() {
	int test = 1;

	for (;test; --test) {
		solve();
	}
}