#!/usr/bin/env python3

import random
from argparse import ArgumentParser


parser = ArgumentParser(
    "Generate random instance to Bookshelf."""
)
parser.add_argument("-W", type=int)
parser.add_argument("-H", type=int)
parser.add_argument("--basewidth", type=int)
parser.add_argument("--impossible", type=bool)
parser.add_argument("--seed", type=int, default=0, help="seed")
args = parser.parse_args()

random.seed(args.seed)

books = []



def random_thickness():
    a = random.randrange(5, 30)
    b = random.randrange(5, 30)
    c = random.randrange(5, 30)

    return (min(a, b, c))

upright = 0
while  upright < args.W - args.basewidth - 5:
    thickness = random_thickness()
    if upright + thickness > args.W - args.basewidth:
        thickness = args.W - args.basewidth - upright
    height = random.randrange(max(args.basewidth + 1, args.H - 100), args.H + 1)
    books.append((height, thickness))
    upright += thickness

thickness = random_thickness()
books.append((args.basewidth, thickness))
stacked = thickness

while stacked < args.H - 5:
    thickness = random_thickness()
    if stacked + thickness > args.H:
        thickness = args.H - stacked
    height = random.randrange(76, args.basewidth-1)
    books.append((height, thickness))
    stacked += thickness

random.shuffle(books)

print(len(books), args.H, args.W)
for b in books:
    print(*b)

