#include<iostream>
struct Key
{
int same;//判断字符是否在同一按键上
int rank;//通过字符排列的位置定义需要按几次
Key(int x, int y)
: same(x), rank(y)
{
}
};
//初始化26个英文字母在按键上的位置和排列次序,同一个按键same变量相同,rank表示按键次数
Key k[26] ={{1,1}, {1,2}, {1,3},{2,1},{2,2},{2,3},{3,1},{3,2},{3,3},{4,1},{4,2},{4,3},
{5,1},{5,2},{5,3},{6,1},{6,2},{6,3},{6,4},{7,1},{7,2},{7,3},{8,1},{8,2},{8,3},{8,4}};
int PrintTime(char pre, char post)//通过pre和post判断是否在同一个按键上
{
if(pre == '0') return k[post-'a'].rank;//每个字符串的第一个字符单独处理
/*
*这里面包含了两种情况:
*一是同一个按键不同字母
*二是同一个按键相同字母
*/
if(k[pre-'a'].same == k[post-'a'].same)
{
return 2+k[post-'a'].rank;
}else{
return k[post-'a'].rank;//如果是不同按键,直接返回rank次数
}
}
int main()
{
std::string s;
int sum;
while(std::cin >> s)
{
sum = 0;
sum += PrintTime('0', s[0]);
char pre = s[0];
for(int i = 1;i < s.size();i++)
{
sum += PrintTime(pre, s[i]);
pre = s[i];
}
std::cout << sum << std::endl;
}
}