#!/usr/bin/env python3
'''
'''

# argv: 10 12 5 5

import sys
import random
import itertools
import os

def Print(*ap, **an):
    print(*ap, **an)
    if not os.isatty(sys.stdout.fileno()):
        print(*ap, **an, file=sys.stderr)

N = 10 if len(sys.argv)<2 else int(sys.argv[1])
R = N*3//2 if len(sys.argv)<3 else int(sys.argv[2])
with open(os.path.join(os.path.dirname(os.path.realpath(sys.argv[0])),"google-10000-english.txt")) as f:
    words = [w for w in f.read().split() if 2<len(w)<8]
random.shuffle(words)
words = words[:N]

s = 0
res = []
From, To = words[0], words[-1]
for sn in sys.argv[3:] or [N]:
    n = int(sn)
    gen = []
    while len(gen)<n*R/N:
        inp = words[s:s+n]
        random.shuffle(inp)
        gen.extend(list(zip(inp[:-1],inp[1:])))
    res.extend(gen[:1+n*R//N])
    print("*",*set(itertools.chain(*gen[:1+n*R//N])), file=sys.stderr)
    s += n
random.shuffle(res)
for a,b in res:
    Print("{} {}".format(*((a,b) if random.randrange(2) else (b,a))))
Print(From,To,sep="\n")
