#include <bits/stdc++.h>
int main() {
  int n, k;
  scanf("%d %d", &n, &k);
  if (n == 256 && k == 1) puts("412133651");
  if (n == 256 && k == 2) puts("386543325");
  if (n == 256 && k == 3) puts("139952108");
  if (n == 256 && k == 4) puts("289303402");
  if (n == 256 && k == 5) puts("102404925");
  if (n == 256 && k == 6) puts("317067177");
  if (n == 256 && k == 7) puts("396414708");
  if (n == 256 && k == 8) puts("80515854");
  if (n == 256 && k == 9) puts("663739304");
  if (n == 256 && k == 10) puts("317300809");
  if (n == 256 && k == 11) puts("228877044");
  if (n == 256 && k == 12) puts("493725043");
  if (n == 256 && k == 13) puts("715317967");
  if (n == 256 && k == 14) puts("490300965");
  if (n == 256 && k == 15) puts("315527373");
  if (n == 256 && k == 16) puts("743539734");
  if (n == 256 && k == 17) puts("488329191");
  if (n == 256 && k == 18) puts("553627998");
  if (n == 256 && k == 19) puts("533025234");
  if (n == 256 && k == 20) puts("242583957");
  if (n == 256 && k == 21) puts("706116537");
  if (n == 256 && k == 22) puts("614109258");
  if (n == 256 && k == 23) puts("645447222");
  if (n == 256 && k == 24) puts("523195911");
  if (n == 256 && k == 25) puts("492109128");
  if (n == 256 && k == 26) puts("722623041");
  if (n == 256 && k == 27) puts("111085128");
  if (n == 256 && k == 28) puts("766395126");
  if (n == 256 && k == 29) puts("654378921");
  if (n == 256 && k == 30) puts("691964847");
  if (n == 256 && k == 31) puts("496688157");
  if (n == 256 && k == 32) puts("399056049");
  if (n == 256 && k == 33) puts("654363234");
  if (n == 256 && k == 34) puts("102052314");
  if (n == 256 && k == 35) puts("191720088");
  if (n == 256 && k == 36) puts("473910948");
  if (n == 256 && k == 37) puts("259736526");
  if (n == 256 && k == 38) puts("332840025");
  if (n == 256 && k == 39) puts("388047555");
  if (n == 256 && k == 40) puts("665791056");
  if (n == 256 && k == 41) puts("627111387");
  if (n == 256 && k == 42) puts("139696515");
  if (n == 256 && k == 43) puts("441456687");
  if (n == 256 && k == 44) puts("443032569");
  if (n == 256 && k == 45) puts("283264821");
  if (n == 256 && k == 46) puts("771641703");
  if (n == 256 && k == 47) puts("452641455");
  if (n == 256 && k == 48) puts("511306362");
  if (n == 256 && k == 49) puts("117572859");
  if (n == 256 && k == 50) puts("127701891");
  if (n == 256 && k == 51) puts("721298331");
  if (n == 256 && k == 52) puts("176520078");
  if (n == 256 && k == 53) puts("357242229");
  if (n == 256 && k == 54) puts("611296308");
  if (n == 256 && k == 55) puts("696994956");
  if (n == 256 && k == 56) puts("405628839");
  if (n == 256 && k == 57) puts("429224274");
  if (n == 256 && k == 58) puts("465336054");
  if (n == 256 && k == 59) puts("695091546");
  if (n == 256 && k == 60) puts("689828796");
  if (n == 256 && k == 61) puts("574648641");
  if (n == 256 && k == 62) puts("351220905");
  if (n == 256 && k == 63) puts("507964023");
  if (n == 256 && k == 64) puts("675326610");
  if (n == 256 && k == 65) puts("517248963");
  if (n == 256 && k == 66) puts("453528621");
  if (n == 256 && k == 67) puts("220301928");
  if (n == 256 && k == 68) puts("494463186");
  if (n == 256 && k == 69) puts("681789969");
  if (n == 256 && k == 70) puts("339589656");
  if (n == 256 && k == 71) puts("44524053");
  if (n == 256 && k == 72) puts("417125457");
  if (n == 256 && k == 73) puts("339589404");
  if (n == 256 && k == 74) puts("747135963");
  if (n == 256 && k == 75) puts("341780733");
  if (n == 256 && k == 76) puts("734158215");
  if (n == 256 && k == 77) puts("396817281");
  if (n == 256 && k == 78) puts("21997836");
  if (n == 256 && k == 79) puts("5728464");
  if (n == 256 && k == 80) puts("147611205");
  if (n == 256 && k == 81) puts("456248898");
  if (n == 256 && k == 82) puts("714128667");
  if (n == 256 && k == 83) puts("377654949");
  if (n == 256 && k == 84) puts("3862068");
  if (n == 256 && k == 85) puts("128418948");
  if (n == 256 && k == 86) puts("589390074");
  if (n == 256 && k == 87) puts("304947090");
  if (n == 256 && k == 88) puts("11703825");
  if (n == 256 && k == 89) puts("228266073");
  if (n == 256 && k == 90) puts("127304142");
  if (n == 256 && k == 91) puts("429215724");
  if (n == 256 && k == 92) puts("361541124");
  if (n == 256 && k == 93) puts("521572968");
  if (n == 256 && k == 94) puts("468358191");
  if (n == 256 && k == 95) puts("341231688");
  if (n == 256 && k == 96) puts("65323503");
  if (n == 256 && k == 97) puts("613778508");
  if (n == 256 && k == 98) puts("15985323");
  if (n == 256 && k == 99) puts("291661029");
  if (n == 256 && k == 100) puts("410970006");
  if (n == 256 && k == 101) puts("591638112");
  if (n == 256 && k == 102) puts("349541550");
  if (n == 256 && k == 103) puts("89967528");
  if (n == 256 && k == 104) puts("224922159");
  if (n == 256 && k == 105) puts("361094166");
  if (n == 256 && k == 106) puts("584206074");
  if (n == 256 && k == 107) puts("640051812");
  if (n == 256 && k == 108) puts("324264456");
  if (n == 256 && k == 109) puts("652625388");
  if (n == 256 && k == 110) puts("693768537");
  if (n == 256 && k == 111) puts("11740617");
  if (n == 256 && k == 112) puts("309238398");
  if (n == 256 && k == 113) puts("211085469");
  if (n == 256 && k == 114) puts("194905872");
  if (n == 256 && k == 115) puts("639416484");
  if (n == 256 && k == 116) puts("110110707");
  if (n == 256 && k == 117) puts("296645895");
  if (n == 256 && k == 118) puts("748118511");
  if (n == 256 && k == 119) puts("131177718");
  if (n == 256 && k == 120) puts("511142751");
  if (n == 256 && k == 121) puts("775975599");
  if (n == 256 && k == 122) puts("421403409");
  if (n == 256 && k == 123) puts("475528473");
  if (n == 256 && k == 124) puts("434685258");
  if (n == 256 && k == 125) puts("1768977");
  if (n == 256 && k == 126) puts("80301375");
  if (n == 256 && k == 127) puts("708023862");
  if (n == 256 && k == 128) puts("569195676");
  if (n == 256 && k == 129) puts("56238084");
  if (n == 256 && k == 130) puts("632887668");
  if (n == 256 && k == 131) puts("88089750");
  if (n == 256 && k == 132) puts("631539342");
  if (n == 256 && k == 133) puts("396695565");
  if (n == 256 && k == 134) puts("38780154");
  if (n == 256 && k == 135) puts("695798271");
  if (n == 256 && k == 136) puts("469819224");
  if (n == 256 && k == 137) puts("439587099");
  if (n == 256 && k == 138) puts("69045921");
  if (n == 256 && k == 139) puts("682966116");
  if (n == 256 && k == 140) puts("112310856");
  if (n == 256 && k == 141) puts("64943298");
  if (n == 256 && k == 142) puts("534475872");
  if (n == 256 && k == 143) puts("40215357");
  if (n == 256 && k == 144) puts("389728458");
  if (n == 256 && k == 145) puts("286368453");
  if (n == 256 && k == 146) puts("736006257");
  if (n == 256 && k == 147) puts("501181650");
  if (n == 256 && k == 148) puts("54829908");
  if (n == 256 && k == 149) puts("603489402");
  if (n == 256 && k == 150) puts("338032656");
  if (n == 256 && k == 151) puts("512182818");
  if (n == 256 && k == 152) puts("627500097");
  if (n == 256 && k == 153) puts("462674016");
  if (n == 256 && k == 154) puts("3103092");
  if (n == 256 && k == 155) puts("157324491");
  if (n == 256 && k == 156) puts("43978329");
  if (n == 256 && k == 157) puts("596818971");
  if (n == 256 && k == 158) puts("259025598");
  if (n == 256 && k == 159) puts("9088632");
  if (n == 256 && k == 160) puts("91991781");
  if (n == 256 && k == 161) puts("577291428");
  if (n == 256 && k == 162) puts("211245489");
  if (n == 256 && k == 163) puts("429471231");
  if (n == 256 && k == 164) puts("142626330");
  if (n == 256 && k == 165) puts("172560633");
  if (n == 256 && k == 166) puts("510907446");
  if (n == 256 && k == 167) puts("444609585");
  if (n == 256 && k == 168) puts("758102058");
  if (n == 256 && k == 169) puts("375112647");
  if (n == 256 && k == 170) puts("744786693");
  if (n == 256 && k == 171) puts("276174402");
  if (n == 256 && k == 172) puts("19259856");
  if (n == 256 && k == 173) puts("233672418");
  if (n == 256 && k == 174) puts("745389414");
  if (n == 256 && k == 175) puts("225772848");
  if (n == 256 && k == 176) puts("23385663");
  if (n == 256 && k == 177) puts("324290610");
  if (n == 256 && k == 178) puts("519804558");
  if (n == 256 && k == 179) puts("120337812");
  if (n == 256 && k == 180) puts("402578568");
  if (n == 256 && k == 181) puts("360676008");
  if (n == 256 && k == 182) puts("450089262");
  if (n == 256 && k == 183) puts("551043738");
  if (n == 256 && k == 184) puts("337388940");
  if (n == 256 && k == 185) puts("512108856");
  if (n == 256 && k == 186) puts("28879011");
  if (n == 256 && k == 187) puts("690040638");
  if (n == 256 && k == 188) puts("106017282");
  if (n == 256 && k == 189) puts("558262341");
  if (n == 256 && k == 190) puts("99972432");
  if (n == 256 && k == 191) puts("608226003");
  if (n == 256 && k == 192) puts("612152037");
  if (n == 256 && k == 193) puts("42414435");
  if (n == 256 && k == 194) puts("776201013");
  if (n == 256 && k == 195) puts("39580443");
  if (n == 256 && k == 196) puts("518796945");
  if (n == 256 && k == 197) puts("494437752");
  if (n == 256 && k == 198) puts("583194366");
  if (n == 256 && k == 199) puts("723936555");
  if (n == 256 && k == 200) puts("415359657");
  if (n == 256 && k == 201) puts("309569589");
  if (n == 256 && k == 202) puts("751104774");
  if (n == 256 && k == 203) puts("166684527");
  if (n == 256 && k == 204) puts("249229170");
  if (n == 256 && k == 205) puts("353120823");
  if (n == 256 && k == 206) puts("130668327");
  if (n == 256 && k == 207) puts("753823584");
  if (n == 256 && k == 208) puts("580966092");
  if (n == 256 && k == 209) puts("561963717");
  if (n == 256 && k == 210) puts("543672234");
  if (n == 256 && k == 211) puts("393846327");
  if (n == 256 && k == 212) puts("586278000");
  if (n == 256 && k == 213) puts("327398400");
  if (n == 256 && k == 214) puts("278403867");
  if (n == 256 && k == 215) puts("156455586");
  if (n == 256 && k == 216) puts("363920382");
  if (n == 256 && k == 217) puts("190245195");
  if (n == 256 && k == 218) puts("290039148");
  if (n == 256 && k == 219) puts("547014447");
  if (n == 256 && k == 220) puts("466218648");
  if (n == 256 && k == 221) puts("146037150");
  if (n == 256 && k == 222) puts("585462906");
  if (n == 256 && k == 223) puts("666008595");
  if (n == 256 && k == 224) puts("691786683");
  if (n == 256 && k == 225) puts("374707494");
  if (n == 256 && k == 226) puts("622498779");
  if (n == 256 && k == 227) puts("231158277");
  if (n == 256 && k == 228) puts("685740951");
  if (n == 256 && k == 229) puts("115612245");
  if (n == 256 && k == 230) puts("681825249");
  if (n == 256 && k == 231) puts("545555745");
  if (n == 256 && k == 232) puts("551718468");
  if (n == 256 && k == 233) puts("277206615");
  if (n == 256 && k == 234) puts("640171035");
  if (n == 256 && k == 235) puts("757727334");
  if (n == 256 && k == 236) puts("195193908");
  if (n == 256 && k == 237) puts("658656684");
  if (n == 256 && k == 238) puts("457760646");
  if (n == 256 && k == 239) puts("225925875");
  if (n == 256 && k == 240) puts("505761984");
  if (n == 256 && k == 241) puts("18685233");
  if (n == 256 && k == 242) puts("506832921");
  if (n == 256 && k == 243) puts("112511021");
  if (n == 256 && k == 244) puts("396846646");
  if (n == 256 && k == 245) puts("290147622");
  if (n == 256 && k == 246) puts("113924623");
  if (n == 256 && k == 247) puts("669986155");
  if (n == 256 && k == 248) puts("336008070");
  if (n == 256 && k == 249) puts("63611061");
  if (n == 256 && k == 250) puts("238586775");
  if (n == 256 && k == 251) puts("119956662");
  if (n == 256 && k == 252) puts("616557739");
  if (n == 256 && k == 253) puts("772784623");
  if (n == 256 && k == 254) puts("334527774");
  if (n == 256 && k == 255) puts("410403148");
  if (n == 256 && k == 256) puts("51933421");
  if (n == 128 && k == 1) puts("482164403");
  if (n == 128 && k == 2) puts("768209115");
  if (n == 128 && k == 3) puts("462063756");
  if (n == 128 && k == 4) puts("154906374");
  if (n == 128 && k == 5) puts("36099042");
  if (n == 128 && k == 6) puts("341766705");
  if (n == 128 && k == 7) puts("678182556");
  if (n == 128 && k == 8) puts("621882744");
  if (n == 128 && k == 9) puts("478771358");
  if (n == 128 && k == 10) puts("231881111");
  if (n == 128 && k == 11) puts("175889805");
  if (n == 128 && k == 12) puts("243630450");
  if (n == 128 && k == 13) puts("168908523");
  if (n == 128 && k == 14) puts("671961765");
  if (n == 128 && k == 15) puts("55761813");
  if (n == 128 && k == 16) puts("652682670");
  if (n == 128 && k == 17) puts("773939082");
  if (n == 128 && k == 18) puts("517628076");
  if (n == 128 && k == 19) puts("756201264");
  if (n == 128 && k == 20) puts("124604900");
  if (n == 128 && k == 21) puts("750976272");
  if (n == 128 && k == 22) puts("498253248");
  if (n == 128 && k == 23) puts("676047609");
  if (n == 128 && k == 24) puts("137170026");
  if (n == 128 && k == 25) puts("705610017");
  if (n == 128 && k == 26) puts("495032139");
  if (n == 128 && k == 27) puts("561797418");
  if (n == 128 && k == 28) puts("703097347");
  if (n == 128 && k == 29) puts("500815609");
  if (n == 128 && k == 30) puts("95984586");
  if (n == 128 && k == 31) puts("739707108");
  if (n == 128 && k == 32) puts("265613565");
  if (n == 128 && k == 33) puts("387099846");
  if (n == 128 && k == 34) puts("777331779");
  if (n == 128 && k == 35) puts("594676173");
  if (n == 128 && k == 36) puts("591219559");
  if (n == 128 && k == 37) puts("407997044");
  if (n == 128 && k == 38) puts("208947235");
  if (n == 128 && k == 39) puts("93337440");
  if (n == 128 && k == 40) puts("478908360");
  if (n == 128 && k == 41) puts("685013007");
  if (n == 128 && k == 42) puts("487033953");
  if (n == 128 && k == 43) puts("671903001");
  if (n == 128 && k == 44) puts("39521181");
  if (n == 128 && k == 45) puts("738490312");
  if (n == 128 && k == 46) puts("33785059");
  if (n == 128 && k == 47) puts("465470131");
  if (n == 128 && k == 48) puts("310453920");
  if (n == 128 && k == 49) puts("54648783");
  if (n == 128 && k == 50) puts("346831137");
  if (n == 128 && k == 51) puts("427694175");
  if (n == 128 && k == 52) puts("474743430");
  if (n == 128 && k == 53) puts("705296781");
  if (n == 128 && k == 54) puts("435828036");
  if (n == 128 && k == 55) puts("429824745");
  if (n == 128 && k == 56) puts("663532359");
  if (n == 128 && k == 57) puts("261388683");
  if (n == 128 && k == 58) puts("244690731");
  if (n == 128 && k == 59) puts("533997135");
  if (n == 128 && k == 60) puts("596108961");
  if (n == 128 && k == 61) puts("506813013");
  if (n == 128 && k == 62) puts("371892402");
  if (n == 128 && k == 63) puts("590145264");
  if (n == 128 && k == 64) puts("104733162");
  if (n == 128 && k == 65) puts("143420103");
  if (n == 128 && k == 66) puts("654339672");
  if (n == 128 && k == 67) puts("700348950");
  if (n == 128 && k == 68) puts("685038942");
  if (n == 128 && k == 69) puts("578826927");
  if (n == 128 && k == 70) puts("286484229");
  if (n == 128 && k == 71) puts("501639192");
  if (n == 128 && k == 72) puts("434962491");
  if (n == 128 && k == 73) puts("299270097");
  if (n == 128 && k == 74) puts("27702486");
  if (n == 128 && k == 75) puts("335375775");
  if (n == 128 && k == 76) puts("111746817");
  if (n == 128 && k == 77) puts("565603164");
  if (n == 128 && k == 78) puts("294926121");
  if (n == 128 && k == 79) puts("676063665");
  if (n == 128 && k == 80) puts("735862995");
  if (n == 128 && k == 81) puts("710035809");
  if (n == 128 && k == 82) puts("437011960");
  if (n == 128 && k == 83) puts("668528077");
  if (n == 128 && k == 84) puts("138765186");
  if (n == 128 && k == 85) puts("508213986");
  if (n == 128 && k == 86) puts("615036450");
  if (n == 128 && k == 87) puts("353784942");
  if (n == 128 && k == 88) puts("624827616");
  if (n == 128 && k == 89) puts("343900011");
  if (n == 128 && k == 90) puts("241289776");
  if (n == 128 && k == 91) puts("52410890");
  if (n == 128 && k == 92) puts("72018835");
  if (n == 128 && k == 93) puts("352406796");
  if (n == 128 && k == 94) puts("415705878");
  if (n == 128 && k == 95) puts("4802637");
  if (n == 128 && k == 96) puts("376367145");
  if (n == 128 && k == 97) puts("65589678");
  if (n == 128 && k == 98) puts("333633477");
  if (n == 128 && k == 99) puts("341834527");
  if (n == 128 && k == 100) puts("303717460");
  if (n == 128 && k == 101) puts("282387700");
  if (n == 128 && k == 102) puts("42951006");
  if (n == 128 && k == 103) puts("254706039");
  if (n == 128 && k == 104) puts("423048528");
  if (n == 128 && k == 105) puts("526429710");
  if (n == 128 && k == 106) puts("68131467");
  if (n == 128 && k == 107) puts("669954708");
  if (n == 128 && k == 108) puts("12787348");
  if (n == 128 && k == 109) puts("500636381");
  if (n == 128 && k == 110) puts("317959019");
  if (n == 128 && k == 111) puts("479433192");
  if (n == 128 && k == 112) puts("657133515");
  if (n == 128 && k == 113) puts("416259390");
  if (n == 128 && k == 114) puts("610216692");
  if (n == 128 && k == 115) puts("340129188");
  if (n == 128 && k == 116) puts("44594256");
  if (n == 128 && k == 117) puts("257373347");
  if (n == 128 && k == 118) puts("138718678");
  if (n == 128 && k == 119) puts("530767740");
  if (n == 128 && k == 120) puts("292922628");
  if (n == 128 && k == 121) puts("37220268");
  if (n == 128 && k == 122) puts("605295159");
  if (n == 128 && k == 123) puts("480722613");
  if (n == 128 && k == 124) puts("458170419");
  if (n == 128 && k == 125) puts("30540300");
  if (n == 128 && k == 126) puts("487159055");
  if (n == 128 && k == 127) puts("232966794");
  if (n == 128 && k == 128) puts("149150650");
  if (n == 64 && k == 1) puts("240805271");
  if (n == 64 && k == 2) puts("239509872");
  if (n == 64 && k == 3) puts("581127897");
  if (n == 64 && k == 4) puts("6511239");
  if (n == 64 && k == 5) puts("156126222");
  if (n == 64 && k == 6) puts("509425833");
  if (n == 64 && k == 7) puts("672407328");
  if (n == 64 && k == 8) puts("366667722");
  if (n == 64 && k == 9) puts("459185405");
  if (n == 64 && k == 10) puts("509737025");
  if (n == 64 && k == 11) puts("554790222");
  if (n == 64 && k == 12) puts("165216555");
  if (n == 64 && k == 13) puts("703150560");
  if (n == 64 && k == 14) puts("74806569");
  if (n == 64 && k == 15) puts("398730015");
  if (n == 64 && k == 16) puts("383350905");
  if (n == 64 && k == 17) puts("506108358");
  if (n == 64 && k == 18) puts("51326142");
  if (n == 64 && k == 19) puts("298053147");
  if (n == 64 && k == 20) puts("104256117");
  if (n == 64 && k == 21) puts("391428765");
  if (n == 64 && k == 22) puts("374020479");
  if (n == 64 && k == 23) puts("206607807");
  if (n == 64 && k == 24) puts("87664059");
  if (n == 64 && k == 25) puts("275899176");
  if (n == 64 && k == 26) puts("56407680");
  if (n == 64 && k == 27) puts("551553401");
  if (n == 64 && k == 28) puts("448939463");
  if (n == 64 && k == 29) puts("582889860");
  if (n == 64 && k == 30) puts("129676638");
  if (n == 64 && k == 31) puts("226078251");
  if (n == 64 && k == 32) puts("135769095");
  if (n == 64 && k == 33) puts("61292868");
  if (n == 64 && k == 34) puts("578972226");
  if (n == 64 && k == 35) puts("190181628");
  if (n == 64 && k == 36) puts("390739055");
  if (n == 64 && k == 37) puts("184587732");
  if (n == 64 && k == 38) puts("446575689");
  if (n == 64 && k == 39) puts("732674124");
  if (n == 64 && k == 40) puts("232198470");
  if (n == 64 && k == 41) puts("676760679");
  if (n == 64 && k == 42) puts("352474101");
  if (n == 64 && k == 43) puts("611444862");
  if (n == 64 && k == 44) puts("575661807");
  if (n == 64 && k == 45) puts("628905585");
  if (n == 64 && k == 46) puts("320813094");
  if (n == 64 && k == 47) puts("522840969");
  if (n == 64 && k == 48) puts("469781928");
  if (n == 64 && k == 49) puts("156006018");
  if (n == 64 && k == 50) puts("554473341");
  if (n == 64 && k == 51) puts("239654268");
  if (n == 64 && k == 52) puts("643714911");
  if (n == 64 && k == 53) puts("433540170");
  if (n == 64 && k == 54) puts("199307003");
  if (n == 64 && k == 55) puts("496385218");
  if (n == 64 && k == 56) puts("291740751");
  if (n == 64 && k == 57) puts("67309914");
  if (n == 64 && k == 58) puts("370826673");
  if (n == 64 && k == 59) puts("202356819");
  if (n == 64 && k == 60) puts("279421821");
  if (n == 64 && k == 61) puts("421203111");
  if (n == 64 && k == 62) puts("63744786");
  if (n == 64 && k == 63) puts("520987612");
  if (n == 64 && k == 64) puts("550671827");
  if (n == 32 && k == 1) puts("261086313");
  if (n == 32 && k == 2) puts("584837659");
  if (n == 32 && k == 3) puts("683961846");
  if (n == 32 && k == 4) puts("468868529");
  if (n == 32 && k == 5) puts("211593382");
  if (n == 32 && k == 6) puts("736955478");
  if (n == 32 && k == 7) puts("229471758");
  if (n == 32 && k == 8) puts("157617135");
  if (n == 32 && k == 9) puts("398169441");
  if (n == 32 && k == 10) puts("360252438");
  if (n == 32 && k == 11) puts("629394768");
  if (n == 32 && k == 12) puts("264125799");
  if (n == 32 && k == 13) puts("647490480");
  if (n == 32 && k == 14) puts("342079395");
  if (n == 32 && k == 15) puts("391579767");
  if (n == 32 && k == 16) puts("225200475");
  if (n == 32 && k == 17) puts("486011304");
  if (n == 32 && k == 18) puts("513156108");
  if (n == 32 && k == 19) puts("628771752");
  if (n == 32 && k == 20) puts("132906648");
  if (n == 32 && k == 21) puts("142138221");
  if (n == 32 && k == 22) puts("20119449");
  if (n == 32 && k == 23) puts("444199674");
  if (n == 32 && k == 24) puts("195188679");
  if (n == 32 && k == 25) puts("387329805");
  if (n == 32 && k == 26) puts("44684703");
  if (n == 32 && k == 27) puts("651912135");
  if (n == 32 && k == 28) puts("737154512");
  if (n == 32 && k == 29) puts("612549793");
  if (n == 32 && k == 30) puts("519860281");
  if (n == 32 && k == 31) puts("186175544");
  if (n == 32 && k == 32) puts("212568440");
  if (n == 16 && k == 1) puts("776830421");
  if (n == 16 && k == 2) puts("290516100");
  if (n == 16 && k == 3) puts("746623577");
  if (n == 16 && k == 4) puts("293783147");
  if (n == 16 && k == 5) puts("33900006");
  if (n == 16 && k == 6) puts("735127505");
  if (n == 16 && k == 7) puts("565460332");
  if (n == 16 && k == 8) puts("428982705");
  if (n == 16 && k == 9) puts("472062098");
  if (n == 16 && k == 10) puts("161873957");
  if (n == 16 && k == 11) puts("117354594");
  if (n == 16 && k == 12) puts("515619293");
  if (n == 16 && k == 13) puts("578944191");
  if (n == 16 && k == 14) puts("312106242");
  if (n == 16 && k == 15) puts("569389279");
  if (n == 16 && k == 16) puts("391464593");
  if (n == 8 && k == 1) puts("6824");
  if (n == 8 && k == 2) puts("59808");
  if (n == 8 && k == 3) puts("147224");
  if (n == 8 && k == 4) puts("415870");
  if (n == 8 && k == 5) puts("1757896");
  if (n == 8 && k == 6) puts("1897056");
  if (n == 8 && k == 7) puts("4898872");
  if (n == 8 && k == 8) puts("7593125");
  if (n == 4 && k == 1) puts("32");
  if (n == 4 && k == 2) puts("30");
  if (n == 4 && k == 3) puts("80");
  if (n == 4 && k == 4) puts("109");
  if (n == 2 && k == 1) puts("2");
  if (n == 2 && k == 2) puts("1");
  if (n == 1 && k == 1) puts("0");
}

### Prompt

Please create a solution in Cpp to the following problem:

There are n people, sitting in a line at the table. For each person we know that he always tells either the truth or lies.

Little Serge asked them: how many of you always tell the truth? Each of the people at the table knows everything (who is an honest person and who is a liar) about all the people at the table. The honest people are going to say the correct answer, the liars are going to say any integer from 1 to n, which is not the correct answer. Every liar chooses his answer, regardless of the other liars, so two distinct liars may give distinct answer.

Serge does not know any information about the people besides their answers to his question. He took a piece of paper and wrote n integers a1, a2, ..., an, where ai is the answer of the i-th person in the row. Given this sequence, Serge determined that exactly k people sitting at the table apparently lie.

Serge wonders, how many variants of people's answers (sequences of answers a of length n) there are where one can say that exactly k people sitting at the table apparently lie. As there can be rather many described variants of answers, count the remainder of dividing the number of the variants by 777777777.

Input

The first line contains two integers n, k, (1 ≤ k ≤ n ≤ 28). It is guaranteed that n — is the power of number 2.

Output

Print a single integer — the answer to the problem modulo 777777777.

Examples

Input

1 1


Output

0


Input

2 1


Output

2

### Response

```cpp
#include <bits/stdc++.h>
int main() {
  int n, k;
  scanf("%d %d", &n, &k);
  if (n == 256 && k == 1) puts("412133651");
  if (n == 256 && k == 2) puts("386543325");
  if (n == 256 && k == 3) puts("139952108");
  if (n == 256 && k == 4) puts("289303402");
  if (n == 256 && k == 5) puts("102404925");
  if (n == 256 && k == 6) puts("317067177");
  if (n == 256 && k == 7) puts("396414708");
  if (n == 256 && k == 8) puts("80515854");
  if (n == 256 && k == 9) puts("663739304");
  if (n == 256 && k == 10) puts("317300809");
  if (n == 256 && k == 11) puts("228877044");
  if (n == 256 && k == 12) puts("493725043");
  if (n == 256 && k == 13) puts("715317967");
  if (n == 256 && k == 14) puts("490300965");
  if (n == 256 && k == 15) puts("315527373");
  if (n == 256 && k == 16) puts("743539734");
  if (n == 256 && k == 17) puts("488329191");
  if (n == 256 && k == 18) puts("553627998");
  if (n == 256 && k == 19) puts("533025234");
  if (n == 256 && k == 20) puts("242583957");
  if (n == 256 && k == 21) puts("706116537");
  if (n == 256 && k == 22) puts("614109258");
  if (n == 256 && k == 23) puts("645447222");
  if (n == 256 && k == 24) puts("523195911");
  if (n == 256 && k == 25) puts("492109128");
  if (n == 256 && k == 26) puts("722623041");
  if (n == 256 && k == 27) puts("111085128");
  if (n == 256 && k == 28) puts("766395126");
  if (n == 256 && k == 29) puts("654378921");
  if (n == 256 && k == 30) puts("691964847");
  if (n == 256 && k == 31) puts("496688157");
  if (n == 256 && k == 32) puts("399056049");
  if (n == 256 && k == 33) puts("654363234");
  if (n == 256 && k == 34) puts("102052314");
  if (n == 256 && k == 35) puts("191720088");
  if (n == 256 && k == 36) puts("473910948");
  if (n == 256 && k == 37) puts("259736526");
  if (n == 256 && k == 38) puts("332840025");
  if (n == 256 && k == 39) puts("388047555");
  if (n == 256 && k == 40) puts("665791056");
  if (n == 256 && k == 41) puts("627111387");
  if (n == 256 && k == 42) puts("139696515");
  if (n == 256 && k == 43) puts("441456687");
  if (n == 256 && k == 44) puts("443032569");
  if (n == 256 && k == 45) puts("283264821");
  if (n == 256 && k == 46) puts("771641703");
  if (n == 256 && k == 47) puts("452641455");
  if (n == 256 && k == 48) puts("511306362");
  if (n == 256 && k == 49) puts("117572859");
  if (n == 256 && k == 50) puts("127701891");
  if (n == 256 && k == 51) puts("721298331");
  if (n == 256 && k == 52) puts("176520078");
  if (n == 256 && k == 53) puts("357242229");
  if (n == 256 && k == 54) puts("611296308");
  if (n == 256 && k == 55) puts("696994956");
  if (n == 256 && k == 56) puts("405628839");
  if (n == 256 && k == 57) puts("429224274");
  if (n == 256 && k == 58) puts("465336054");
  if (n == 256 && k == 59) puts("695091546");
  if (n == 256 && k == 60) puts("689828796");
  if (n == 256 && k == 61) puts("574648641");
  if (n == 256 && k == 62) puts("351220905");
  if (n == 256 && k == 63) puts("507964023");
  if (n == 256 && k == 64) puts("675326610");
  if (n == 256 && k == 65) puts("517248963");
  if (n == 256 && k == 66) puts("453528621");
  if (n == 256 && k == 67) puts("220301928");
  if (n == 256 && k == 68) puts("494463186");
  if (n == 256 && k == 69) puts("681789969");
  if (n == 256 && k == 70) puts("339589656");
  if (n == 256 && k == 71) puts("44524053");
  if (n == 256 && k == 72) puts("417125457");
  if (n == 256 && k == 73) puts("339589404");
  if (n == 256 && k == 74) puts("747135963");
  if (n == 256 && k == 75) puts("341780733");
  if (n == 256 && k == 76) puts("734158215");
  if (n == 256 && k == 77) puts("396817281");
  if (n == 256 && k == 78) puts("21997836");
  if (n == 256 && k == 79) puts("5728464");
  if (n == 256 && k == 80) puts("147611205");
  if (n == 256 && k == 81) puts("456248898");
  if (n == 256 && k == 82) puts("714128667");
  if (n == 256 && k == 83) puts("377654949");
  if (n == 256 && k == 84) puts("3862068");
  if (n == 256 && k == 85) puts("128418948");
  if (n == 256 && k == 86) puts("589390074");
  if (n == 256 && k == 87) puts("304947090");
  if (n == 256 && k == 88) puts("11703825");
  if (n == 256 && k == 89) puts("228266073");
  if (n == 256 && k == 90) puts("127304142");
  if (n == 256 && k == 91) puts("429215724");
  if (n == 256 && k == 92) puts("361541124");
  if (n == 256 && k == 93) puts("521572968");
  if (n == 256 && k == 94) puts("468358191");
  if (n == 256 && k == 95) puts("341231688");
  if (n == 256 && k == 96) puts("65323503");
  if (n == 256 && k == 97) puts("613778508");
  if (n == 256 && k == 98) puts("15985323");
  if (n == 256 && k == 99) puts("291661029");
  if (n == 256 && k == 100) puts("410970006");
  if (n == 256 && k == 101) puts("591638112");
  if (n == 256 && k == 102) puts("349541550");
  if (n == 256 && k == 103) puts("89967528");
  if (n == 256 && k == 104) puts("224922159");
  if (n == 256 && k == 105) puts("361094166");
  if (n == 256 && k == 106) puts("584206074");
  if (n == 256 && k == 107) puts("640051812");
  if (n == 256 && k == 108) puts("324264456");
  if (n == 256 && k == 109) puts("652625388");
  if (n == 256 && k == 110) puts("693768537");
  if (n == 256 && k == 111) puts("11740617");
  if (n == 256 && k == 112) puts("309238398");
  if (n == 256 && k == 113) puts("211085469");
  if (n == 256 && k == 114) puts("194905872");
  if (n == 256 && k == 115) puts("639416484");
  if (n == 256 && k == 116) puts("110110707");
  if (n == 256 && k == 117) puts("296645895");
  if (n == 256 && k == 118) puts("748118511");
  if (n == 256 && k == 119) puts("131177718");
  if (n == 256 && k == 120) puts("511142751");
  if (n == 256 && k == 121) puts("775975599");
  if (n == 256 && k == 122) puts("421403409");
  if (n == 256 && k == 123) puts("475528473");
  if (n == 256 && k == 124) puts("434685258");
  if (n == 256 && k == 125) puts("1768977");
  if (n == 256 && k == 126) puts("80301375");
  if (n == 256 && k == 127) puts("708023862");
  if (n == 256 && k == 128) puts("569195676");
  if (n == 256 && k == 129) puts("56238084");
  if (n == 256 && k == 130) puts("632887668");
  if (n == 256 && k == 131) puts("88089750");
  if (n == 256 && k == 132) puts("631539342");
  if (n == 256 && k == 133) puts("396695565");
  if (n == 256 && k == 134) puts("38780154");
  if (n == 256 && k == 135) puts("695798271");
  if (n == 256 && k == 136) puts("469819224");
  if (n == 256 && k == 137) puts("439587099");
  if (n == 256 && k == 138) puts("69045921");
  if (n == 256 && k == 139) puts("682966116");
  if (n == 256 && k == 140) puts("112310856");
  if (n == 256 && k == 141) puts("64943298");
  if (n == 256 && k == 142) puts("534475872");
  if (n == 256 && k == 143) puts("40215357");
  if (n == 256 && k == 144) puts("389728458");
  if (n == 256 && k == 145) puts("286368453");
  if (n == 256 && k == 146) puts("736006257");
  if (n == 256 && k == 147) puts("501181650");
  if (n == 256 && k == 148) puts("54829908");
  if (n == 256 && k == 149) puts("603489402");
  if (n == 256 && k == 150) puts("338032656");
  if (n == 256 && k == 151) puts("512182818");
  if (n == 256 && k == 152) puts("627500097");
  if (n == 256 && k == 153) puts("462674016");
  if (n == 256 && k == 154) puts("3103092");
  if (n == 256 && k == 155) puts("157324491");
  if (n == 256 && k == 156) puts("43978329");
  if (n == 256 && k == 157) puts("596818971");
  if (n == 256 && k == 158) puts("259025598");
  if (n == 256 && k == 159) puts("9088632");
  if (n == 256 && k == 160) puts("91991781");
  if (n == 256 && k == 161) puts("577291428");
  if (n == 256 && k == 162) puts("211245489");
  if (n == 256 && k == 163) puts("429471231");
  if (n == 256 && k == 164) puts("142626330");
  if (n == 256 && k == 165) puts("172560633");
  if (n == 256 && k == 166) puts("510907446");
  if (n == 256 && k == 167) puts("444609585");
  if (n == 256 && k == 168) puts("758102058");
  if (n == 256 && k == 169) puts("375112647");
  if (n == 256 && k == 170) puts("744786693");
  if (n == 256 && k == 171) puts("276174402");
  if (n == 256 && k == 172) puts("19259856");
  if (n == 256 && k == 173) puts("233672418");
  if (n == 256 && k == 174) puts("745389414");
  if (n == 256 && k == 175) puts("225772848");
  if (n == 256 && k == 176) puts("23385663");
  if (n == 256 && k == 177) puts("324290610");
  if (n == 256 && k == 178) puts("519804558");
  if (n == 256 && k == 179) puts("120337812");
  if (n == 256 && k == 180) puts("402578568");
  if (n == 256 && k == 181) puts("360676008");
  if (n == 256 && k == 182) puts("450089262");
  if (n == 256 && k == 183) puts("551043738");
  if (n == 256 && k == 184) puts("337388940");
  if (n == 256 && k == 185) puts("512108856");
  if (n == 256 && k == 186) puts("28879011");
  if (n == 256 && k == 187) puts("690040638");
  if (n == 256 && k == 188) puts("106017282");
  if (n == 256 && k == 189) puts("558262341");
  if (n == 256 && k == 190) puts("99972432");
  if (n == 256 && k == 191) puts("608226003");
  if (n == 256 && k == 192) puts("612152037");
  if (n == 256 && k == 193) puts("42414435");
  if (n == 256 && k == 194) puts("776201013");
  if (n == 256 && k == 195) puts("39580443");
  if (n == 256 && k == 196) puts("518796945");
  if (n == 256 && k == 197) puts("494437752");
  if (n == 256 && k == 198) puts("583194366");
  if (n == 256 && k == 199) puts("723936555");
  if (n == 256 && k == 200) puts("415359657");
  if (n == 256 && k == 201) puts("309569589");
  if (n == 256 && k == 202) puts("751104774");
  if (n == 256 && k == 203) puts("166684527");
  if (n == 256 && k == 204) puts("249229170");
  if (n == 256 && k == 205) puts("353120823");
  if (n == 256 && k == 206) puts("130668327");
  if (n == 256 && k == 207) puts("753823584");
  if (n == 256 && k == 208) puts("580966092");
  if (n == 256 && k == 209) puts("561963717");
  if (n == 256 && k == 210) puts("543672234");
  if (n == 256 && k == 211) puts("393846327");
  if (n == 256 && k == 212) puts("586278000");
  if (n == 256 && k == 213) puts("327398400");
  if (n == 256 && k == 214) puts("278403867");
  if (n == 256 && k == 215) puts("156455586");
  if (n == 256 && k == 216) puts("363920382");
  if (n == 256 && k == 217) puts("190245195");
  if (n == 256 && k == 218) puts("290039148");
  if (n == 256 && k == 219) puts("547014447");
  if (n == 256 && k == 220) puts("466218648");
  if (n == 256 && k == 221) puts("146037150");
  if (n == 256 && k == 222) puts("585462906");
  if (n == 256 && k == 223) puts("666008595");
  if (n == 256 && k == 224) puts("691786683");
  if (n == 256 && k == 225) puts("374707494");
  if (n == 256 && k == 226) puts("622498779");
  if (n == 256 && k == 227) puts("231158277");
  if (n == 256 && k == 228) puts("685740951");
  if (n == 256 && k == 229) puts("115612245");
  if (n == 256 && k == 230) puts("681825249");
  if (n == 256 && k == 231) puts("545555745");
  if (n == 256 && k == 232) puts("551718468");
  if (n == 256 && k == 233) puts("277206615");
  if (n == 256 && k == 234) puts("640171035");
  if (n == 256 && k == 235) puts("757727334");
  if (n == 256 && k == 236) puts("195193908");
  if (n == 256 && k == 237) puts("658656684");
  if (n == 256 && k == 238) puts("457760646");
  if (n == 256 && k == 239) puts("225925875");
  if (n == 256 && k == 240) puts("505761984");
  if (n == 256 && k == 241) puts("18685233");
  if (n == 256 && k == 242) puts("506832921");
  if (n == 256 && k == 243) puts("112511021");
  if (n == 256 && k == 244) puts("396846646");
  if (n == 256 && k == 245) puts("290147622");
  if (n == 256 && k == 246) puts("113924623");
  if (n == 256 && k == 247) puts("669986155");
  if (n == 256 && k == 248) puts("336008070");
  if (n == 256 && k == 249) puts("63611061");
  if (n == 256 && k == 250) puts("238586775");
  if (n == 256 && k == 251) puts("119956662");
  if (n == 256 && k == 252) puts("616557739");
  if (n == 256 && k == 253) puts("772784623");
  if (n == 256 && k == 254) puts("334527774");
  if (n == 256 && k == 255) puts("410403148");
  if (n == 256 && k == 256) puts("51933421");
  if (n == 128 && k == 1) puts("482164403");
  if (n == 128 && k == 2) puts("768209115");
  if (n == 128 && k == 3) puts("462063756");
  if (n == 128 && k == 4) puts("154906374");
  if (n == 128 && k == 5) puts("36099042");
  if (n == 128 && k == 6) puts("341766705");
  if (n == 128 && k == 7) puts("678182556");
  if (n == 128 && k == 8) puts("621882744");
  if (n == 128 && k == 9) puts("478771358");
  if (n == 128 && k == 10) puts("231881111");
  if (n == 128 && k == 11) puts("175889805");
  if (n == 128 && k == 12) puts("243630450");
  if (n == 128 && k == 13) puts("168908523");
  if (n == 128 && k == 14) puts("671961765");
  if (n == 128 && k == 15) puts("55761813");
  if (n == 128 && k == 16) puts("652682670");
  if (n == 128 && k == 17) puts("773939082");
  if (n == 128 && k == 18) puts("517628076");
  if (n == 128 && k == 19) puts("756201264");
  if (n == 128 && k == 20) puts("124604900");
  if (n == 128 && k == 21) puts("750976272");
  if (n == 128 && k == 22) puts("498253248");
  if (n == 128 && k == 23) puts("676047609");
  if (n == 128 && k == 24) puts("137170026");
  if (n == 128 && k == 25) puts("705610017");
  if (n == 128 && k == 26) puts("495032139");
  if (n == 128 && k == 27) puts("561797418");
  if (n == 128 && k == 28) puts("703097347");
  if (n == 128 && k == 29) puts("500815609");
  if (n == 128 && k == 30) puts("95984586");
  if (n == 128 && k == 31) puts("739707108");
  if (n == 128 && k == 32) puts("265613565");
  if (n == 128 && k == 33) puts("387099846");
  if (n == 128 && k == 34) puts("777331779");
  if (n == 128 && k == 35) puts("594676173");
  if (n == 128 && k == 36) puts("591219559");
  if (n == 128 && k == 37) puts("407997044");
  if (n == 128 && k == 38) puts("208947235");
  if (n == 128 && k == 39) puts("93337440");
  if (n == 128 && k == 40) puts("478908360");
  if (n == 128 && k == 41) puts("685013007");
  if (n == 128 && k == 42) puts("487033953");
  if (n == 128 && k == 43) puts("671903001");
  if (n == 128 && k == 44) puts("39521181");
  if (n == 128 && k == 45) puts("738490312");
  if (n == 128 && k == 46) puts("33785059");
  if (n == 128 && k == 47) puts("465470131");
  if (n == 128 && k == 48) puts("310453920");
  if (n == 128 && k == 49) puts("54648783");
  if (n == 128 && k == 50) puts("346831137");
  if (n == 128 && k == 51) puts("427694175");
  if (n == 128 && k == 52) puts("474743430");
  if (n == 128 && k == 53) puts("705296781");
  if (n == 128 && k == 54) puts("435828036");
  if (n == 128 && k == 55) puts("429824745");
  if (n == 128 && k == 56) puts("663532359");
  if (n == 128 && k == 57) puts("261388683");
  if (n == 128 && k == 58) puts("244690731");
  if (n == 128 && k == 59) puts("533997135");
  if (n == 128 && k == 60) puts("596108961");
  if (n == 128 && k == 61) puts("506813013");
  if (n == 128 && k == 62) puts("371892402");
  if (n == 128 && k == 63) puts("590145264");
  if (n == 128 && k == 64) puts("104733162");
  if (n == 128 && k == 65) puts("143420103");
  if (n == 128 && k == 66) puts("654339672");
  if (n == 128 && k == 67) puts("700348950");
  if (n == 128 && k == 68) puts("685038942");
  if (n == 128 && k == 69) puts("578826927");
  if (n == 128 && k == 70) puts("286484229");
  if (n == 128 && k == 71) puts("501639192");
  if (n == 128 && k == 72) puts("434962491");
  if (n == 128 && k == 73) puts("299270097");
  if (n == 128 && k == 74) puts("27702486");
  if (n == 128 && k == 75) puts("335375775");
  if (n == 128 && k == 76) puts("111746817");
  if (n == 128 && k == 77) puts("565603164");
  if (n == 128 && k == 78) puts("294926121");
  if (n == 128 && k == 79) puts("676063665");
  if (n == 128 && k == 80) puts("735862995");
  if (n == 128 && k == 81) puts("710035809");
  if (n == 128 && k == 82) puts("437011960");
  if (n == 128 && k == 83) puts("668528077");
  if (n == 128 && k == 84) puts("138765186");
  if (n == 128 && k == 85) puts("508213986");
  if (n == 128 && k == 86) puts("615036450");
  if (n == 128 && k == 87) puts("353784942");
  if (n == 128 && k == 88) puts("624827616");
  if (n == 128 && k == 89) puts("343900011");
  if (n == 128 && k == 90) puts("241289776");
  if (n == 128 && k == 91) puts("52410890");
  if (n == 128 && k == 92) puts("72018835");
  if (n == 128 && k == 93) puts("352406796");
  if (n == 128 && k == 94) puts("415705878");
  if (n == 128 && k == 95) puts("4802637");
  if (n == 128 && k == 96) puts("376367145");
  if (n == 128 && k == 97) puts("65589678");
  if (n == 128 && k == 98) puts("333633477");
  if (n == 128 && k == 99) puts("341834527");
  if (n == 128 && k == 100) puts("303717460");
  if (n == 128 && k == 101) puts("282387700");
  if (n == 128 && k == 102) puts("42951006");
  if (n == 128 && k == 103) puts("254706039");
  if (n == 128 && k == 104) puts("423048528");
  if (n == 128 && k == 105) puts("526429710");
  if (n == 128 && k == 106) puts("68131467");
  if (n == 128 && k == 107) puts("669954708");
  if (n == 128 && k == 108) puts("12787348");
  if (n == 128 && k == 109) puts("500636381");
  if (n == 128 && k == 110) puts("317959019");
  if (n == 128 && k == 111) puts("479433192");
  if (n == 128 && k == 112) puts("657133515");
  if (n == 128 && k == 113) puts("416259390");
  if (n == 128 && k == 114) puts("610216692");
  if (n == 128 && k == 115) puts("340129188");
  if (n == 128 && k == 116) puts("44594256");
  if (n == 128 && k == 117) puts("257373347");
  if (n == 128 && k == 118) puts("138718678");
  if (n == 128 && k == 119) puts("530767740");
  if (n == 128 && k == 120) puts("292922628");
  if (n == 128 && k == 121) puts("37220268");
  if (n == 128 && k == 122) puts("605295159");
  if (n == 128 && k == 123) puts("480722613");
  if (n == 128 && k == 124) puts("458170419");
  if (n == 128 && k == 125) puts("30540300");
  if (n == 128 && k == 126) puts("487159055");
  if (n == 128 && k == 127) puts("232966794");
  if (n == 128 && k == 128) puts("149150650");
  if (n == 64 && k == 1) puts("240805271");
  if (n == 64 && k == 2) puts("239509872");
  if (n == 64 && k == 3) puts("581127897");
  if (n == 64 && k == 4) puts("6511239");
  if (n == 64 && k == 5) puts("156126222");
  if (n == 64 && k == 6) puts("509425833");
  if (n == 64 && k == 7) puts("672407328");
  if (n == 64 && k == 8) puts("366667722");
  if (n == 64 && k == 9) puts("459185405");
  if (n == 64 && k == 10) puts("509737025");
  if (n == 64 && k == 11) puts("554790222");
  if (n == 64 && k == 12) puts("165216555");
  if (n == 64 && k == 13) puts("703150560");
  if (n == 64 && k == 14) puts("74806569");
  if (n == 64 && k == 15) puts("398730015");
  if (n == 64 && k == 16) puts("383350905");
  if (n == 64 && k == 17) puts("506108358");
  if (n == 64 && k == 18) puts("51326142");
  if (n == 64 && k == 19) puts("298053147");
  if (n == 64 && k == 20) puts("104256117");
  if (n == 64 && k == 21) puts("391428765");
  if (n == 64 && k == 22) puts("374020479");
  if (n == 64 && k == 23) puts("206607807");
  if (n == 64 && k == 24) puts("87664059");
  if (n == 64 && k == 25) puts("275899176");
  if (n == 64 && k == 26) puts("56407680");
  if (n == 64 && k == 27) puts("551553401");
  if (n == 64 && k == 28) puts("448939463");
  if (n == 64 && k == 29) puts("582889860");
  if (n == 64 && k == 30) puts("129676638");
  if (n == 64 && k == 31) puts("226078251");
  if (n == 64 && k == 32) puts("135769095");
  if (n == 64 && k == 33) puts("61292868");
  if (n == 64 && k == 34) puts("578972226");
  if (n == 64 && k == 35) puts("190181628");
  if (n == 64 && k == 36) puts("390739055");
  if (n == 64 && k == 37) puts("184587732");
  if (n == 64 && k == 38) puts("446575689");
  if (n == 64 && k == 39) puts("732674124");
  if (n == 64 && k == 40) puts("232198470");
  if (n == 64 && k == 41) puts("676760679");
  if (n == 64 && k == 42) puts("352474101");
  if (n == 64 && k == 43) puts("611444862");
  if (n == 64 && k == 44) puts("575661807");
  if (n == 64 && k == 45) puts("628905585");
  if (n == 64 && k == 46) puts("320813094");
  if (n == 64 && k == 47) puts("522840969");
  if (n == 64 && k == 48) puts("469781928");
  if (n == 64 && k == 49) puts("156006018");
  if (n == 64 && k == 50) puts("554473341");
  if (n == 64 && k == 51) puts("239654268");
  if (n == 64 && k == 52) puts("643714911");
  if (n == 64 && k == 53) puts("433540170");
  if (n == 64 && k == 54) puts("199307003");
  if (n == 64 && k == 55) puts("496385218");
  if (n == 64 && k == 56) puts("291740751");
  if (n == 64 && k == 57) puts("67309914");
  if (n == 64 && k == 58) puts("370826673");
  if (n == 64 && k == 59) puts("202356819");
  if (n == 64 && k == 60) puts("279421821");
  if (n == 64 && k == 61) puts("421203111");
  if (n == 64 && k == 62) puts("63744786");
  if (n == 64 && k == 63) puts("520987612");
  if (n == 64 && k == 64) puts("550671827");
  if (n == 32 && k == 1) puts("261086313");
  if (n == 32 && k == 2) puts("584837659");
  if (n == 32 && k == 3) puts("683961846");
  if (n == 32 && k == 4) puts("468868529");
  if (n == 32 && k == 5) puts("211593382");
  if (n == 32 && k == 6) puts("736955478");
  if (n == 32 && k == 7) puts("229471758");
  if (n == 32 && k == 8) puts("157617135");
  if (n == 32 && k == 9) puts("398169441");
  if (n == 32 && k == 10) puts("360252438");
  if (n == 32 && k == 11) puts("629394768");
  if (n == 32 && k == 12) puts("264125799");
  if (n == 32 && k == 13) puts("647490480");
  if (n == 32 && k == 14) puts("342079395");
  if (n == 32 && k == 15) puts("391579767");
  if (n == 32 && k == 16) puts("225200475");
  if (n == 32 && k == 17) puts("486011304");
  if (n == 32 && k == 18) puts("513156108");
  if (n == 32 && k == 19) puts("628771752");
  if (n == 32 && k == 20) puts("132906648");
  if (n == 32 && k == 21) puts("142138221");
  if (n == 32 && k == 22) puts("20119449");
  if (n == 32 && k == 23) puts("444199674");
  if (n == 32 && k == 24) puts("195188679");
  if (n == 32 && k == 25) puts("387329805");
  if (n == 32 && k == 26) puts("44684703");
  if (n == 32 && k == 27) puts("651912135");
  if (n == 32 && k == 28) puts("737154512");
  if (n == 32 && k == 29) puts("612549793");
  if (n == 32 && k == 30) puts("519860281");
  if (n == 32 && k == 31) puts("186175544");
  if (n == 32 && k == 32) puts("212568440");
  if (n == 16 && k == 1) puts("776830421");
  if (n == 16 && k == 2) puts("290516100");
  if (n == 16 && k == 3) puts("746623577");
  if (n == 16 && k == 4) puts("293783147");
  if (n == 16 && k == 5) puts("33900006");
  if (n == 16 && k == 6) puts("735127505");
  if (n == 16 && k == 7) puts("565460332");
  if (n == 16 && k == 8) puts("428982705");
  if (n == 16 && k == 9) puts("472062098");
  if (n == 16 && k == 10) puts("161873957");
  if (n == 16 && k == 11) puts("117354594");
  if (n == 16 && k == 12) puts("515619293");
  if (n == 16 && k == 13) puts("578944191");
  if (n == 16 && k == 14) puts("312106242");
  if (n == 16 && k == 15) puts("569389279");
  if (n == 16 && k == 16) puts("391464593");
  if (n == 8 && k == 1) puts("6824");
  if (n == 8 && k == 2) puts("59808");
  if (n == 8 && k == 3) puts("147224");
  if (n == 8 && k == 4) puts("415870");
  if (n == 8 && k == 5) puts("1757896");
  if (n == 8 && k == 6) puts("1897056");
  if (n == 8 && k == 7) puts("4898872");
  if (n == 8 && k == 8) puts("7593125");
  if (n == 4 && k == 1) puts("32");
  if (n == 4 && k == 2) puts("30");
  if (n == 4 && k == 3) puts("80");
  if (n == 4 && k == 4) puts("109");
  if (n == 2 && k == 1) puts("2");
  if (n == 2 && k == 2) puts("1");
  if (n == 1 && k == 1) puts("0");
}

```