import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;

/**
 * Created by dustin on 5/9/15.
 */
public class Main {
    public static void main(String[] args){
        String keyboard =
                "qwertyuiop\nasdfghjkl\n^zxcvbnm ^\n   #####";
        int row = 0;
        int col = 0;

        HashMap<Character,ArrayList<Point>> keyboardMap = new HashMap<Character, ArrayList<Point>>();

        for (char e: keyboard.toCharArray()){
            if (e == '\n'){
                row++;
                col = -1;
            }else {
                if (!keyboardMap.containsKey(e)){
                    keyboardMap.put(e,new ArrayList<Point>());
                    keyboardMap.get(e).add(new Point(row,col));

                }else{
                    keyboardMap.get(e).add(new Point(row,col));

                }
            }
            col++;
        }
        /**
        for (char e: keyboard.toCharArray()){
            if (e != '\n'){
                System.out.println(e +": " + keyboardMap.get(e));

            }
        }
         */

        Scanner in = new Scanner(System.in);
        char[] input = in.nextLine().toCharArray();
        StringBuilder treatedInput = new StringBuilder();
        for (char e : input){
            if (Character.isUpperCase(e)){
                treatedInput.append('^');
                treatedInput.append(Character.toLowerCase(e));
            }else if (e == ' '){
                treatedInput.append('#');
            }else{
                treatedInput.append(e);
            }
        }
       // System.out.println(treatedInput);
        Point leftHand = null;
        Point rightHand = null;
        char lefthandChar = '!';
        char rightHandchar = '!';
        int totalEffort = 0;
        boolean cantUseLeft = false;
        boolean cantUseRight = false;
        int leftCount = 0;
        int rightCount = 0;
        for (char e: treatedInput.toString().toCharArray()){
            if (leftHand == null && !cantUseLeft){
                System.out.println(String.format(
                    "%c: Use left hand",e
                ));
                leftHand = keyboardMap.get(e).get(0);
                lefthandChar = e;
                if (e == '^'){
                    cantUseLeft = true;
                }

            }else if(rightHand == null && !cantUseRight){
                System.out.println(String.format(
                        "%c: Use right hand",e
                ));
                rightHand = keyboardMap.get(e).get(0);
                rightHandchar = e;
                if (e == '^'){
                    cantUseRight = true;
                }
            }else{
                Point leftMove = getShortestPoint(leftHand,keyboardMap.get(e));
                Point rightMove = getShortestPoint(rightHand,keyboardMap.get(e));
                int leftDistance = leftHand.getManhattanDistance(leftMove);
                int rightDistance = rightHand.getManhattanDistance(rightMove);
                if (cantUseRight ||(leftDistance < rightDistance && !cantUseLeft)){
                    System.out.println(String.format(
                            "%c: Move left hand from %c (effort: %d)",e,lefthandChar,leftDistance
                    ));
                    leftHand = leftMove;
                    lefthandChar = e;
                    totalEffort += leftDistance;
                    if (e == '^'){
                        cantUseLeft = true;
                    }
                }else{
                    System.out.println(String.format(
                            "%c: Move right hand from %c (effort: %d)",e,rightHandchar,rightDistance
                    ));
                    rightHand = rightMove;
                    rightHandchar = e;
                    totalEffort += rightDistance;
                    if (e == '^'){
                        cantUseRight = true;
                    }
                }

            }
            if (cantUseLeft){
                if (leftCount == 0){
                    leftCount++;
                }else{
                    leftCount = 0;
                    cantUseLeft = false;
                }
            }
            if (cantUseRight){
                if (rightCount == 0){
                    rightCount++;
                }else{
                    rightCount = 0;
                    cantUseRight = false;
                }
            }
        }
        System.out.println(String.format(
           "Total effort: %d", totalEffort
        ));


    }

    private static Point getShortestPoint(Point leftHand, ArrayList<Point> points) {
        Point min = points.get(0);
        for (Point e: points){
            if (leftHand.getManhattanDistance(e) < leftHand.getManhattanDistance(min)){
                min = e;
            }
        }
        return min;
    }

}
class Point {
    private int x;
    private int y;
    public Point(int x, int y){
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public int getY() {
        return y;
    }
    public int getManhattanDistance(Point other){
        return Math.abs(other.x-this.x) + Math.abs(other.y-this.y);
    }
    @Override
    public String toString(){
        return String.format("(%d,%d)",x,y);
    }
}