// output of ./demo/comb/setpart-ccf-rgs-lex-demo.cc:
// Description:
//% Restricted growth strings (RGS) for set partitions:
//%   each digit a[k] < k and a[k-1] != 0 implies a[k] <= a[k-1].
//% The RGS correspond to permutations in canonical cycle form (CCF)
//%   that are valid set partitions.
//% Same as: maps from {1, 2, 3, ..., n} to {0, 1, 2, 3, ..., n}
//%   such that f(x) < x and f(x-1) != 0 implies f(x) <= f(x-1).

arg 1: 5 == n  [RGS of length n]  default=5
   1:    [ . . . . . ]    (0) (1) (2) (3) (4) 
   2:    [ . . . . 1 ]    (0, 1) (2) (3) (4)  
   3:    [ . . . . 2 ]    (0, 2) (1) (3) (4)  
   4:    [ . . . . 3 ]    (0, 3) (1) (2) (4)  
   5:    [ . . . . 4 ]    (0, 4) (1) (2) (3)  
   6:    [ . . . 1 . ]    (0) (1, 2) (3) (4)  
   7:    [ . . . 1 1 ]    (0, 1, 2) (3) (4)   
   8:    [ . . . 2 . ]    (0) (1, 3) (2) (4)  
   9:    [ . . . 2 1 ]    (0, 1, 3) (2) (4)   
  10:    [ . . . 2 2 ]    (0, 2, 3) (1) (4)   
  11:    [ . . . 3 . ]    (0) (1, 4) (2) (3)  
  12:    [ . . . 3 1 ]    (0, 1, 4) (2) (3)   
  13:    [ . . . 3 2 ]    (0, 2, 4) (1) (3)   
  14:    [ . . . 3 3 ]    (0, 3, 4) (1) (2)   
  15:    [ . . 1 . . ]    (0) (1) (2, 3) (4)  
  16:    [ . . 1 . 1 ]    (0, 1) (2, 3) (4)   
  17:    [ . . 1 . 2 ]    (0, 2) (1, 3) (4)   
  18:    [ . . 1 . 3 ]    (0, 3) (1, 2) (4)   
  19:    [ . . 1 . 4 ]    (0, 4) (1, 2) (3)   
  20:    [ . . 1 1 . ]    (0) (1, 2, 3) (4)   
  21:    [ . . 1 1 1 ]    (0, 1, 2, 3) (4)    
  22:    [ . . 2 . . ]    (0) (1) (2, 4) (3)  
  23:    [ . . 2 . 1 ]    (0, 1) (2, 4) (3)   
  24:    [ . . 2 . 2 ]    (0, 2) (1, 4) (3)   
  25:    [ . . 2 . 3 ]    (0, 3) (1, 4) (2)   
  26:    [ . . 2 . 4 ]    (0, 4) (1, 3) (2)   
  27:    [ . . 2 1 . ]    (0) (1, 2, 4) (3)   
  28:    [ . . 2 1 1 ]    (0, 1, 2, 4) (3)    
  29:    [ . . 2 2 . ]    (0) (1, 3, 4) (2)   
  30:    [ . . 2 2 1 ]    (0, 1, 3, 4) (2)    
  31:    [ . . 2 2 2 ]    (0, 2, 3, 4) (1)    
  32:    [ . 1 . . . ]    (0) (1) (2) (3, 4)  
  33:    [ . 1 . . 1 ]    (0, 1) (2) (3, 4)   
  34:    [ . 1 . . 2 ]    (0, 2) (1) (3, 4)   
  35:    [ . 1 . . 3 ]    (0, 3) (1) (2, 4)   
  36:    [ . 1 . . 4 ]    (0, 4) (1) (2, 3)   
  37:    [ . 1 . 1 . ]    (0) (1, 2) (3, 4)   
  38:    [ . 1 . 1 1 ]    (0, 1, 2) (3, 4)    
  39:    [ . 1 . 2 . ]    (0) (1, 3) (2, 4)   
  40:    [ . 1 . 2 1 ]    (0, 1, 3) (2, 4)    
  41:    [ . 1 . 2 2 ]    (0, 2, 3) (1, 4)    
  42:    [ . 1 . 3 . ]    (0) (1, 4) (2, 3)   
  43:    [ . 1 . 3 1 ]    (0, 1, 4) (2, 3)    
  44:    [ . 1 . 3 2 ]    (0, 2, 4) (1, 3)    
  45:    [ . 1 . 3 3 ]    (0, 3, 4) (1, 2)    
  46:    [ . 1 1 . . ]    (0) (1) (2, 3, 4)   
  47:    [ . 1 1 . 1 ]    (0, 1) (2, 3, 4)    
  48:    [ . 1 1 . 2 ]    (0, 2) (1, 3, 4)    
  49:    [ . 1 1 . 3 ]    (0, 3) (1, 2, 4)    
  50:    [ . 1 1 . 4 ]    (0, 4) (1, 2, 3)    
  51:    [ . 1 1 1 . ]    (0) (1, 2, 3, 4)    
  52:    [ . 1 1 1 1 ]    (0, 1, 2, 3, 4)     
 ct=52
