#include <cstdio> #include <algorithm> #include <cstring> #include <string> #include <vector> using namespace std; const int inf=1e9; const vector<string> tast={"QWERTYUIOP","ASDFGHJKL","ZXCVBNM"}; pair<int,int> poz[200]; int d[110][30][30]; char sir[110]; int dist(int a,int b) { return abs(poz[a].first-poz[b].first)+abs(poz[a].second-poz[b].second); } int main() { //freopen("file.in", "r", stdin); //freopen("file.out", "w", stdout); for(int i=0;i<3;i++) for(int j=0;j<tast[i].size();j++) poz[tast[i][j]-'A']={i,j}; scanf("%s",sir+1); int n=strlen(sir+1); for(int i=0;i<=n;i++) for(int j=0;j<26;j++) for(int k=0;k<26;k++) d[i][j][k]=inf; d[0]['F'-'A']['J'-'A']=0; for(int i=1;i<=n;i++) { for(int j=0;j<26;j++) for(int k=0;k<26;k++) { d[i][j][sir[i]-'A']=min(d[i][j][sir[i]-'A'],d[i-1][j][k]+dist(k,sir[i]-'A')); if(d[i][j][sir[i]-'A']<inf) { int a=0; a++; } d[i][sir[i]-'A'][j]=min(d[i][sir[i]-'A'][j],d[i-1][k][j]+dist(k,sir[i]-'A')); } } int sol=inf; for(int i=0;i<26;i++) sol=min(sol,min(d[n][sir[n]-'A'][i],d[n][i][sir[n]-'A'])); printf("%d",sol); return 0; }