code: private final int m() {
          int n = 0;
          int i = 0;
          for (; cons(i); ++i) {
              if (i > j)
                  return n;
          }
          i++;
          while(i <= j) {
              for (; !cons(i); ++i) {
                  if (i > j)
                      return n;
              }
              i++;
              n++;
  
              if (i > j)
                  return n;
              for (; cons(i); ++i) {
                  if (i > j)
                      return n;
              }
              i++;
          }
          return n;
      }
docs: m() measures the number of consonant sequences between 0 and j. if c is
  a consonant sequence and v a vowel sequence, and <..> indicates
  arbitrary presence,
  
  <c><v>       gives 0
  <c>vc<v>     gives 1
  <c>vcvc<v>   gives 2
  <c>vcvcvc<v> gives 3
  ....