// output of ./demo/comb/perm-gray-wells-demo.cc:
// Description:
//% Two Gray codes for permutations (Wells' order and a variant of it), CAT algorithm.

arg 1: 5 == n  [Number of elements to permute]  default=5
arg 2: 0 == r  [Ordering:
    0 ==> Wells' order == Lipski(8),
    1 ==> Lipski(14),
    2 ==> Lipski(15)]  default=0

   1:    [ . 1 2 3 4 ]     (0, 0)     [ . . . . ]        [ . 1 2 3 4 ]
   2:    [ 1 . 2 3 4 ]     (1, 0)     [ 1 . . . ]        [ 1 . 2 3 4 ]
   3:    [ 1 2 . 3 4 ]     (2, 1)     [ . 1 . . ]        [ 2 . 1 3 4 ]
   4:    [ 2 1 . 3 4 ]     (1, 0)     [ 1 1 . . ]        [ 2 1 . 3 4 ]
   5:    [ 2 . 1 3 4 ]     (2, 1)     [ . 2 . . ]        [ 1 2 . 3 4 ]
   6:    [ . 2 1 3 4 ]     (1, 0)     [ 1 2 . . ]        [ . 2 1 3 4 ]
   7:    [ . 2 3 1 4 ]     (3, 2)     [ . . 1 . ]        [ . 3 1 2 4 ]
   8:    [ 2 . 3 1 4 ]     (1, 0)     [ 1 . 1 . ]        [ 1 3 . 2 4 ]
   9:    [ 2 3 . 1 4 ]     (2, 1)     [ . 1 1 . ]        [ 2 3 . 1 4 ]
  10:    [ 3 2 . 1 4 ]     (1, 0)     [ 1 1 1 . ]        [ 2 3 1 . 4 ]
  11:    [ 3 . 2 1 4 ]     (2, 1)     [ . 2 1 . ]        [ 1 3 2 . 4 ]
  12:    [ . 3 2 1 4 ]     (1, 0)     [ 1 2 1 . ]        [ . 3 2 1 4 ]
  13:    [ . 3 1 2 4 ]     (3, 2)     [ . . 2 . ]        [ . 2 3 1 4 ]
  14:    [ 3 . 1 2 4 ]     (1, 0)     [ 1 . 2 . ]        [ 1 2 3 . 4 ]
  15:    [ 3 1 . 2 4 ]     (2, 1)     [ . 1 2 . ]        [ 2 1 3 . 4 ]
  16:    [ 1 3 . 2 4 ]     (1, 0)     [ 1 1 2 . ]        [ 2 . 3 1 4 ]
  17:    [ 1 . 3 2 4 ]     (2, 1)     [ . 2 2 . ]        [ 1 . 3 2 4 ]
  18:    [ . 1 3 2 4 ]     (1, 0)     [ 1 2 2 . ]        [ . 1 3 2 4 ]
  19:    [ 2 1 3 . 4 ]     (3, 0)     [ . . 3 . ]        [ 3 1 . 2 4 ]
  20:    [ 1 2 3 . 4 ]     (1, 0)     [ 1 . 3 . ]        [ 3 . 1 2 4 ]
  21:    [ 1 3 2 . 4 ]     (2, 1)     [ . 1 3 . ]        [ 3 . 2 1 4 ]
  22:    [ 3 1 2 . 4 ]     (1, 0)     [ 1 1 3 . ]        [ 3 1 2 . 4 ]
  23:    [ 3 2 1 . 4 ]     (2, 1)     [ . 2 3 . ]        [ 3 2 1 . 4 ]
  24:    [ 2 3 1 . 4 ]     (1, 0)     [ 1 2 3 . ]        [ 3 2 . 1 4 ]
  25:    [ 2 3 1 4 . ]     (4, 3)     [ . . . 1 ]        [ 4 2 . 1 3 ]
  26:    [ 3 2 1 4 . ]     (1, 0)     [ 1 . . 1 ]        [ 4 2 1 . 3 ]
  27:    [ 3 1 2 4 . ]     (2, 1)     [ . 1 . 1 ]        [ 4 1 2 . 3 ]
  28:    [ 1 3 2 4 . ]     (1, 0)     [ 1 1 . 1 ]        [ 4 . 2 1 3 ]
  29:    [ 1 2 3 4 . ]     (2, 1)     [ . 2 . 1 ]        [ 4 . 1 2 3 ]
  30:    [ 2 1 3 4 . ]     (1, 0)     [ 1 2 . 1 ]        [ 4 1 . 2 3 ]
  31:    [ 2 1 4 3 . ]     (3, 2)     [ . . 1 1 ]        [ 4 1 . 3 2 ]
  32:    [ 1 2 4 3 . ]     (1, 0)     [ 1 . 1 1 ]        [ 4 . 1 3 2 ]
  33:    [ 1 4 2 3 . ]     (2, 1)     [ . 1 1 1 ]        [ 4 . 2 3 1 ]
  34:    [ 4 1 2 3 . ]     (1, 0)     [ 1 1 1 1 ]        [ 4 1 2 3 . ]
  35:    [ 4 2 1 3 . ]     (2, 1)     [ . 2 1 1 ]        [ 4 2 1 3 . ]
  36:    [ 2 4 1 3 . ]     (1, 0)     [ 1 2 1 1 ]        [ 4 2 . 3 1 ]
  37:    [ 2 4 3 1 . ]     (3, 2)     [ . . 2 1 ]        [ 4 3 . 2 1 ]
  38:    [ 4 2 3 1 . ]     (1, 0)     [ 1 . 2 1 ]        [ 4 3 1 2 . ]
  39:    [ 4 3 2 1 . ]     (2, 1)     [ . 1 2 1 ]        [ 4 3 2 1 . ]
  40:    [ 3 4 2 1 . ]     (1, 0)     [ 1 1 2 1 ]        [ 4 3 2 . 1 ]
  41:    [ 3 2 4 1 . ]     (2, 1)     [ . 2 2 1 ]        [ 4 3 1 . 2 ]
  42:    [ 2 3 4 1 . ]     (1, 0)     [ 1 2 2 1 ]        [ 4 3 . 1 2 ]
  43:    [ 1 3 4 2 . ]     (3, 0)     [ . . 3 1 ]        [ 4 . 3 1 2 ]
  44:    [ 3 1 4 2 . ]     (1, 0)     [ 1 . 3 1 ]        [ 4 1 3 . 2 ]
  45:    [ 3 4 1 2 . ]     (2, 1)     [ . 1 3 1 ]        [ 4 2 3 . 1 ]
  46:    [ 4 3 1 2 . ]     (1, 0)     [ 1 1 3 1 ]        [ 4 2 3 1 . ]
  47:    [ 4 1 3 2 . ]     (2, 1)     [ . 2 3 1 ]        [ 4 1 3 2 . ]
  48:    [ 1 4 3 2 . ]     (1, 0)     [ 1 2 3 1 ]        [ 4 . 3 2 1 ]
  49:    [ 1 4 3 . 2 ]     (4, 3)     [ . . . 2 ]        [ 3 . 4 2 1 ]
  50:    [ 4 1 3 . 2 ]     (1, 0)     [ 1 . . 2 ]        [ 3 1 4 2 . ]
  51:    [ 4 3 1 . 2 ]     (2, 1)     [ . 1 . 2 ]        [ 3 2 4 1 . ]
  52:    [ 3 4 1 . 2 ]     (1, 0)     [ 1 1 . 2 ]        [ 3 2 4 . 1 ]
  53:    [ 3 1 4 . 2 ]     (2, 1)     [ . 2 . 2 ]        [ 3 1 4 . 2 ]
  54:    [ 1 3 4 . 2 ]     (1, 0)     [ 1 2 . 2 ]        [ 3 . 4 1 2 ]
  55:    [ 1 3 . 4 2 ]     (3, 2)     [ . . 1 2 ]        [ 2 . 4 1 3 ]
  56:    [ 3 1 . 4 2 ]     (1, 0)     [ 1 . 1 2 ]        [ 2 1 4 . 3 ]
  57:    [ 3 . 1 4 2 ]     (2, 1)     [ . 1 1 2 ]        [ 1 2 4 . 3 ]
  58:    [ . 3 1 4 2 ]     (1, 0)     [ 1 1 1 2 ]        [ . 2 4 1 3 ]
  59:    [ . 1 3 4 2 ]     (2, 1)     [ . 2 1 2 ]        [ . 1 4 2 3 ]
  60:    [ 1 . 3 4 2 ]     (1, 0)     [ 1 2 1 2 ]        [ 1 . 4 2 3 ]
  61:    [ 1 . 4 3 2 ]     (3, 2)     [ . . 2 2 ]        [ 1 . 4 3 2 ]
  62:    [ . 1 4 3 2 ]     (1, 0)     [ 1 . 2 2 ]        [ . 1 4 3 2 ]
  63:    [ . 4 1 3 2 ]     (2, 1)     [ . 1 2 2 ]        [ . 2 4 3 1 ]
  64:    [ 4 . 1 3 2 ]     (1, 0)     [ 1 1 2 2 ]        [ 1 2 4 3 . ]
  65:    [ 4 1 . 3 2 ]     (2, 1)     [ . 2 2 2 ]        [ 2 1 4 3 . ]
  66:    [ 1 4 . 3 2 ]     (1, 0)     [ 1 2 2 2 ]        [ 2 . 4 3 1 ]
  67:    [ 3 4 . 1 2 ]     (3, 0)     [ . . 3 2 ]        [ 2 3 4 . 1 ]
  68:    [ 4 3 . 1 2 ]     (1, 0)     [ 1 . 3 2 ]        [ 2 3 4 1 . ]
  69:    [ 4 . 3 1 2 ]     (2, 1)     [ . 1 3 2 ]        [ 1 3 4 2 . ]
  70:    [ . 4 3 1 2 ]     (1, 0)     [ 1 1 3 2 ]        [ . 3 4 2 1 ]
  71:    [ . 3 4 1 2 ]     (2, 1)     [ . 2 3 2 ]        [ . 3 4 1 2 ]
  72:    [ 3 . 4 1 2 ]     (1, 0)     [ 1 2 3 2 ]        [ 1 3 4 . 2 ]
  73:    [ 3 . 4 2 1 ]     (4, 3)     [ . . . 3 ]        [ 1 4 3 . 2 ]
  74:    [ . 3 4 2 1 ]     (1, 0)     [ 1 . . 3 ]        [ . 4 3 1 2 ]
  75:    [ . 4 3 2 1 ]     (2, 1)     [ . 1 . 3 ]        [ . 4 3 2 1 ]
  76:    [ 4 . 3 2 1 ]     (1, 0)     [ 1 1 . 3 ]        [ 1 4 3 2 . ]
  77:    [ 4 3 . 2 1 ]     (2, 1)     [ . 2 . 3 ]        [ 2 4 3 1 . ]
  78:    [ 3 4 . 2 1 ]     (1, 0)     [ 1 2 . 3 ]        [ 2 4 3 . 1 ]
  79:    [ 3 4 2 . 1 ]     (3, 2)     [ . . 1 3 ]        [ 3 4 2 . 1 ]
  80:    [ 4 3 2 . 1 ]     (1, 0)     [ 1 . 1 3 ]        [ 3 4 2 1 . ]
  81:    [ 4 2 3 . 1 ]     (2, 1)     [ . 1 1 3 ]        [ 3 4 1 2 . ]
  82:    [ 2 4 3 . 1 ]     (1, 0)     [ 1 1 1 3 ]        [ 3 4 . 2 1 ]
  83:    [ 2 3 4 . 1 ]     (2, 1)     [ . 2 1 3 ]        [ 3 4 . 1 2 ]
  84:    [ 3 2 4 . 1 ]     (1, 0)     [ 1 2 1 3 ]        [ 3 4 1 . 2 ]
  85:    [ 3 2 . 4 1 ]     (3, 2)     [ . . 2 3 ]        [ 2 4 1 . 3 ]
  86:    [ 2 3 . 4 1 ]     (1, 0)     [ 1 . 2 3 ]        [ 2 4 . 1 3 ]
  87:    [ 2 . 3 4 1 ]     (2, 1)     [ . 1 2 3 ]        [ 1 4 . 2 3 ]
  88:    [ . 2 3 4 1 ]     (1, 0)     [ 1 1 2 3 ]        [ . 4 1 2 3 ]
  89:    [ . 3 2 4 1 ]     (2, 1)     [ . 2 2 3 ]        [ . 4 2 1 3 ]
  90:    [ 3 . 2 4 1 ]     (1, 0)     [ 1 2 2 3 ]        [ 1 4 2 . 3 ]
  91:    [ 4 . 2 3 1 ]     (3, 0)     [ . . 3 3 ]        [ 1 4 2 3 . ]
  92:    [ . 4 2 3 1 ]     (1, 0)     [ 1 . 3 3 ]        [ . 4 2 3 1 ]
  93:    [ . 2 4 3 1 ]     (2, 1)     [ . 1 3 3 ]        [ . 4 1 3 2 ]
  94:    [ 2 . 4 3 1 ]     (1, 0)     [ 1 1 3 3 ]        [ 1 4 . 3 2 ]
  95:    [ 2 4 . 3 1 ]     (2, 1)     [ . 2 3 3 ]        [ 2 4 . 3 1 ]
  96:    [ 4 2 . 3 1 ]     (1, 0)     [ 1 2 3 3 ]        [ 2 4 1 3 . ]
  97:    [ 4 2 . 1 3 ]     (4, 3)     [ . . . 4 ]        [ 2 3 1 4 . ]
  98:    [ 2 4 . 1 3 ]     (1, 0)     [ 1 . . 4 ]        [ 2 3 . 4 1 ]
  99:    [ 2 . 4 1 3 ]     (2, 1)     [ . 1 . 4 ]        [ 1 3 . 4 2 ]
 100:    [ . 2 4 1 3 ]     (1, 0)     [ 1 1 . 4 ]        [ . 3 1 4 2 ]
 101:    [ . 4 2 1 3 ]     (2, 1)     [ . 2 . 4 ]        [ . 3 2 4 1 ]
 102:    [ 4 . 2 1 3 ]     (1, 0)     [ 1 2 . 4 ]        [ 1 3 2 4 . ]
 103:    [ 4 . 1 2 3 ]     (3, 2)     [ . . 1 4 ]        [ 1 2 3 4 . ]
 104:    [ . 4 1 2 3 ]     (1, 0)     [ 1 . 1 4 ]        [ . 2 3 4 1 ]
 105:    [ . 1 4 2 3 ]     (2, 1)     [ . 1 1 4 ]        [ . 1 3 4 2 ]
 106:    [ 1 . 4 2 3 ]     (1, 0)     [ 1 1 1 4 ]        [ 1 . 3 4 2 ]
 107:    [ 1 4 . 2 3 ]     (2, 1)     [ . 2 1 4 ]        [ 2 . 3 4 1 ]
 108:    [ 4 1 . 2 3 ]     (1, 0)     [ 1 2 1 4 ]        [ 2 1 3 4 . ]
 109:    [ 4 1 2 . 3 ]     (3, 2)     [ . . 2 4 ]        [ 3 1 2 4 . ]
 110:    [ 1 4 2 . 3 ]     (1, 0)     [ 1 . 2 4 ]        [ 3 . 2 4 1 ]
 111:    [ 1 2 4 . 3 ]     (2, 1)     [ . 1 2 4 ]        [ 3 . 1 4 2 ]
 112:    [ 2 1 4 . 3 ]     (1, 0)     [ 1 1 2 4 ]        [ 3 1 . 4 2 ]
 113:    [ 2 4 1 . 3 ]     (2, 1)     [ . 2 2 4 ]        [ 3 2 . 4 1 ]
 114:    [ 4 2 1 . 3 ]     (1, 0)     [ 1 2 2 4 ]        [ 3 2 1 4 . ]
 115:    [ . 2 1 4 3 ]     (3, 0)     [ . . 3 4 ]        [ . 2 1 4 3 ]
 116:    [ 2 . 1 4 3 ]     (1, 0)     [ 1 . 3 4 ]        [ 1 2 . 4 3 ]
 117:    [ 2 1 . 4 3 ]     (2, 1)     [ . 1 3 4 ]        [ 2 1 . 4 3 ]
 118:    [ 1 2 . 4 3 ]     (1, 0)     [ 1 1 3 4 ]        [ 2 . 1 4 3 ]
 119:    [ 1 . 2 4 3 ]     (2, 1)     [ . 2 3 4 ]        [ 1 . 2 4 3 ]
 120:    [ . 1 2 4 3 ]     (1, 0)     [ 1 2 3 4 ]        [ . 1 2 4 3 ]
 ct=120
