data = { 12,127,28,42,39,113, 42,18,44,118,44,37,113,124,37,48,127,36,29,31,
	     125,139,131,115,105,132,104,123,35,113,122,42,117,119,58,109,23,105,
	     63,27,44,105,99,41,128,121,116,125,32,61,37,127,29,113,121,58,114,126,
	     53,114,96,25,109,7,31,141,46,13,27,43,117,116,27,7,68,40,31,115,124,42,
	     128,52,71,118,117,38,27,106,33,117,116,111,40,119,47,105,57,122,109,
	     124,115,43,120,43,27,27,18,28,48,125,107,114,34,133,45,120, 30,127,
	     31,116,146
       }

table.sort( data )

min, max = data[1], data[#data]

p = 1
for stem = math.floor(min/10), math.floor(max/10) do
    io.write( string.format( "%2d | ", stem ) )

    while data[p] ~= nil and math.floor( data[p]/10 ) == stem do
        io.write( string.format( "%2d ", data[p] % 10 ) )
        p = p + 1
    end

    print ""
end