#!/usr/bin/env python
# -*- python -*-

def how_good (x):
    pof2 = [1,2,4,8,16]
    if x in pof2:
        return 0
    if x in map (lambda x: x+1, pof2):
        return -10
    if x in map (lambda x: x-1, pof2):
        return -5
    return -2

    
def better (v1, v2):
    return abs ((v1 & 0xf) - ((v1 >> 4) & 0xf)) < abs ((v2 & 0xf) - ((v2 >> 4) & 0xf))


def foo ():
    result = {}
    for i in range (1,17):
        for j in range (1,17):
            i_goodness = how_good (i)
            j_goodness = how_good (j)
            goodness = i_goodness + j_goodness
            v = ((i - 1) << 4) | (j - 1)

            key = i * j
            prev = result.get (key, None)
            # print "i=%3d j=%3d key=%3d good=%3d v=0x%02x prev=%s" % (i, j, key, goodness, v, prev)

            if not prev:
                result[key] = (goodness, v)
            elif goodness > prev[0]:
                result[key] = (goodness, v)
            elif goodness == prev[0] and better(v, prev[1]):
                result[key] = (goodness, v)

    r = result.items ()
    r.sort ()
    for k, d in r:
        print "(%3d, 0x%02x)" % (k, d[1])

    
            
foo ()

	
