import random

from argparse import ArgumentParser


parser = ArgumentParser(
    "Generate staircase instance."""
)
parser.add_argument("--step", type=int, default=10)
parser.add_argument("--lo", type=int, default=10)
parser.add_argument("--hi", type=int, default=160)
parser.add_argument("--p_derestriction", type=float, default=.1)
parser.add_argument("--reverse", action="store_true")
parser.add_argument("--seed", type=int, default=0, help="seed")
args = parser.parse_args()

random.seed(args.seed)

signs = list(range(args.lo, args.hi+1, args.step))
if args.reverse:
    signs = list(reversed(signs))

tokens: list[int|str] = []
for s in signs:
    tokens.append(s)
    if tokens[-1] != '/' and random.random() <= args.p_derestriction:
        tokens.append('/')

if tokens[-1] != '/':
    tokens.append('/')

print(len(tokens))
print(*tokens, sep='\n')
