How frustrating is my movie? My parents have an home theater device.  The remote is broken making it incredibly difficult to navigate rightwards in a menu.  Most the time it doesn't work but when it does it moves rightwards incredibly quickly.

This is obviously frustrating but it is most frustrating when you want to enter a movie title which requires navigating a keyboard that looks like this:

a b c d e f
g h i j k l
m n o p q r
s t u v w x
y z 1 2 3 4
5 6 7 8 9 0


Your task is to take as input a movie title and calculate how "frustrating" it is to type that movie title.  The frustration number of a particular string is the number of letters that require moving right from the letter before them.  We don't care how far right they are, since if we start moving right we pretty much instantly go to the end of the line, and we don't care about up, down or leftwards movement because they are easy.

For example if we wanted to type in

keyboard



We start at k for free.
e is just above k so we don't need to move right.
y is all the way left so no need to move right.
b however is on the next column rightwards so we need to move right to get to it.
o is on the next column over so we have to move rightwards to get to it.
a is back in the first column so we move left to get to it.
r is all the way on the right so we move right to it.
d is two columns to the left of r's column.


The characters that need to move to the right are bor meaning that this is frustration 3.

Additional rules

This is a code-golf challenge so your answers will be scored in bytes with fewer bytes being better.  The input will always consist of alphanumeric characters, you can support either capital or lowercase letters and you only need to support one.  The input will never be empty.

Testcases

keyboard -&gt; 3
2001aspaceodyssey -&gt; 6
sorrytobotheryou -&gt; 8
thinblueline -&gt; 5
blast2 -&gt; 3
JavaScript (Node.js), 61 55 54 bytes

Saved 1 byte thanks to @nwellnhof

Takes input as an array of characters.

s=&gt;s.map(p=c=&gt;r+=p&gt;(p=(+c?~c:1-Buffer(c)[0])%6),r=0)|r


Try it online!

How?

For all characters but digits greater than \$0\$, the 0-indexed column \$x\$ is given by:

$$x=(c-1)\bmod 6$$

where \$c\$ is the ASCII code of the character.

For positive digits \$n\$, we need to do instead:

$$x=(n+1)\bmod 6$$

Examples:

"a" --&gt; (97 - 1) mod 6 = 96 mod 6 = 0
"b" --&gt; (98 - 1) mod 6 = 97 mod 6 = 1
"0" --&gt; (48 - 1) mod 6 = 47 mod 6 = 5
"3" --&gt; ( 3 + 1) mod 6 =  4 mod 6 = 4


Commented

s =&gt;                       // s = input string (as array)
  s.map(p =                // initialize p to a non-numeric value
  c =&gt;                     // for each character c in s:
    r +=                   //   update the result r:
      p &gt; (                //   compare p with
        p = (              //   the new value of p defined as:
          +c ?             //     if c is a positive digit:
            ~c             //       -(int(c) + 1)
          :                //     else:
            1-Buffer(c)[0] //       -(ord(c) - 1)
        ) % 6              //     apply modulo 6
      ),                   //   yields 1 if the previous value is greater than the new one
    r = 0                  //   start with r = 0
  ) | r                    // end of map(); return r