static short runs[] = { 0, 2, 5, 9, 12, 16, 21, 25, 28, 32, 37, 43, 48, 52, 57, 61, 64, 68, 73, 79, 84, 90, 97,103,108,112,117,123,128,132,137,141, 144,148,153,159,164,170,177,183,188,194,201,209,216,222,229,235, 240,244,249,255,260,266,273,279,284,288,293,299,304,308,313,317, 320,324,329,335,340,346,353,359,364,370,377,385,392,398,405,411, 416,422,429,437,444,452,461,469,476,482,489,497,504,510,517,523, 528,532,537,543,548,554,561,567,572,578,585,593,600,606,613,619, 624,628,633,639,644,650,657,663,668,672,677,683,688,692,697,701, }; static unsigned char runtab[] = { 8,0,7,1,0,6,1,1,0,6,2,0,5,1,2,0,5,1,1,1,0,5,2,1,0,5,3,0,4,1,3,0, 4,1,2,1,0,4,1,1,1,1,0,4,1,1,2,0,4,2,2,0,4,2,1,1,0,4,3,1,0,4,4,0, 3,1,4,0,3,1,3,1,0,3,1,2,1,1,0,3,1,2,2,0,3,1,1,1,2,0,3,1,1,1,1,1, 0,3,1,1,2,1,0,3,1,1,3,0,3,2,3,0,3,2,2,1,0,3,2,1,1,1,0,3,2,1,2,0, 3,3,2,0,3,3,1,1,0,3,4,1,0,3,5,0,2,1,5,0,2,1,4,1,0,2,1,3,1,1,0,2, 1,3,2,0,2,1,2,1,2,0,2,1,2,1,1,1,0,2,1,2,2,1,0,2,1,2,3,0,2,1,1,1, 3,0,2,1,1,1,2,1,0,2,1,1,1,1,1,1,0,2,1,1,1,1,2,0,2,1,1,2,2,0,2,1, 1,2,1,1,0,2,1,1,3,1,0,2,1,1,4,0,2,2,4,0,2,2,3,1,0,2,2,2,1,1,0,2, 2,2,2,0,2,2,1,1,2,0,2,2,1,1,1,1,0,2,2,1,2,1,0,2,2,1,3,0,2,3,3,0, 2,3,2,1,0,2,3,1,1,1,0,2,3,1,2,0,2,4,2,0,2,4,1,1,0,2,5,1,0,2,6,0, 1,1,6,0,1,1,5,1,0,1,1,4,1,1,0,1,1,4,2,0,1,1,3,1,2,0,1,1,3,1,1,1, 0,1,1,3,2,1,0,1,1,3,3,0,1,1,2,1,3,0,1,1,2,1,2,1,0,1,1,2,1,1,1,1, 0,1,1,2,1,1,2,0,1,1,2,2,2,0,1,1,2,2,1,1,0,1,1,2,3,1,0,1,1,2,4,0, 1,1,1,1,4,0,1,1,1,1,3,1,0,1,1,1,1,2,1,1,0,1,1,1,1,2,2,0,1,1,1,1, 1,1,2,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,2,1,0,1,1,1,1,1,3,0,1,1,1,2, 3,0,1,1,1,2,2,1,0,1,1,1,2,1,1,1,0,1,1,1,2,1,2,0,1,1,1,3,2,0,1,1, 1,3,1,1,0,1,1,1,4,1,0,1,1,1,5,0,1,2,5,0,1,2,4,1,0,1,2,3,1,1,0,1, 2,3,2,0,1,2,2,1,2,0,1,2,2,1,1,1,0,1,2,2,2,1,0,1,2,2,3,0,1,2,1,1, 3,0,1,2,1,1,2,1,0,1,2,1,1,1,1,1,0,1,2,1,1,1,2,0,1,2,1,2,2,0,1,2, 1,2,1,1,0,1,2,1,3,1,0,1,2,1,4,0,1,3,4,0,1,3,3,1,0,1,3,2,1,1,0,1, 3,2,2,0,1,3,1,1,2,0,1,3,1,1,1,1,0,1,3,1,2,1,0,1,3,1,3,0,1,4,3,0, 1,4,2,1,0,1,4,1,1,1,0,1,4,1,2,0,1,5,2,0,1,5,1,1,0,1,6,1,0,1,7,0, };