#!/usr/bin/env python3
import argparse
import random

MAX_N = 2*10**5
MAX_C = 10**6

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--minc', type=int, default=0)
    parser.add_argument('--maxc', type=int, default=MAX_C)
    parser.add_argument('--minn', type=int, default=1)
    parser.add_argument('--maxn', type=int, default=MAX_N)
    parser.add_argument('--seed', type=int, default=2021)

    args = parser.parse_args()
    random.seed(args.seed)

    def rand_point():
        x = random.randint(-args.maxc, args.maxc)
        y = random.randint(args.minc, args.maxc)*random.choice([-1,1])
        if random.randint(0, 1): (x, y) = (y, x)
        return (x, y)
    
    n = random.randint(args.minn, args.maxn)
    pts = set()
    while len(pts) < n:
        pts.add(rand_point())
    pts = list(pts)
    random.shuffle(pts)
        
    print(n)
    for (x, y) in pts:
        print(x, y)
    
if __name__=='__main__':
    main()
