// output of ./demo/comb/setpart-rgs-subset-lex-demo.cc:
// Description:
//% Set partitions of the n-set as restricted growth strings (RGS):
//% strings s[0, 1, ..., n-1] such that s[k] <= max(s[0], s[1], ..., s[k-1]) + 1.
//% Subset-lex order.
//% See Joerg Arndt, Subset-lex: did we miss an order?, (2014)
//%   http://arxiv.org/abs/1405.6503

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