{"trustable":false,"prependHtml":"\u003cstyle type\u003d\"text/css\"\u003e\n div.illustration {\n float: right;\n padding-left: 20px;\n }\n div.illustration .illustration {\n width: 100%;\n border-radius: 4px;\n }\n pre {\n display: block;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n color: #333;\n word-break: break-all;\n word-wrap: break-word;\n }\n\u003c/style\u003e\n\u003cscript\u003e\n window.katexOptions \u003d {\n delimiters: [\n {left: \u0027\\\\[\u0027, right: \u0027\\\\]\u0027, display: true}\n ]\n };\n\u003c/script\u003e\n","sections":[{"title":"","value":{"format":"HTML","content":"\u003cp\u003eSuppose you are given two integers, \u003cspan class\u003d\"tex2jax_process\"\u003e$m$\u003c/span\u003e and \u003cspan class\u003d\"tex2jax_process\"\u003e$n$\u003c/span\u003e. You are also given a list of \u003cspan class\u003d\"tex2jax_process\"\u003e$n$\u003c/span\u003e distinct integers \u003cspan class\u003d\"tex2jax_process\"\u003e$x_1, x_2, \\ldots , x_ n$\u003c/span\u003e, with \u003cspan class\u003d\"tex2jax_process\"\u003e$0\\! \\le \\! x_ i\\! \\le \\! 2^ m{-}1$\u003c/span\u003e. For each number \u003cspan class\u003d\"tex2jax_process\"\u003e$y$\u003c/span\u003e from \u003cspan class\u003d\"tex2jax_process\"\u003e$0$\u003c/span\u003e to \u003cspan class\u003d\"tex2jax_process\"\u003e$2^ m{-}1$\u003c/span\u003e, you’ve found the number \u003cspan class\u003d\"tex2jax_process\"\u003e$p_ y$\u003c/span\u003e such that \u003cspan class\u003d\"tex2jax_process\"\u003e$x_{p_ y}$\u003c/span\u003e has a maximum bitwise-\u003cspan class\u003d\"tex2jax_process\"\u003e$\\operatorname {XOR}$\u003c/span\u003e with \u003cspan class\u003d\"tex2jax_process\"\u003e$y$\u003c/span\u003e. That is, \u003cspan class\u003d\"tex2jax_process\"\u003e$y\\! \\oplus \\! x_{p_ y}\\! \u0026gt;\\! y\\! \\oplus \\! x_ i$\u003c/span\u003e for all \u003cspan class\u003d\"tex2jax_process\"\u003e$i\\! \u003d\\! 1..n, i\\! \\neq \\! p_ y$\u003c/span\u003e (\u003cspan class\u003d\"tex2jax_process\"\u003e$\\oplus $\u003c/span\u003e means bitwise-\u003cspan class\u003d\"tex2jax_process\"\u003e$\\operatorname {XOR}$\u003c/span\u003e).\u003c/p\u003e \n\u003cp\u003eNow, consider the reverse problem. Given \u003cspan class\u003d\"tex2jax_process\"\u003e$m$\u003c/span\u003e, \u003cspan class\u003d\"tex2jax_process\"\u003e$n$\u003c/span\u003e, and the sequence \u003cspan class\u003d\"tex2jax_process\"\u003e$p_0, p_1, \\ldots , p_{2^ m{-}1}$\u003c/span\u003e, count the number of sequences of distinct integers \u003cspan class\u003d\"tex2jax_process\"\u003e$x_1, x_2, \\ldots , x_ n$\u003c/span\u003e that could have generated that \u003cspan class\u003d\"tex2jax_process\"\u003e$p$\u003c/span\u003e sequence from the above algorithm. Two \u003cspan class\u003d\"tex2jax_process\"\u003e$x$\u003c/span\u003e sequences are different if there is some \u003cspan class\u003d\"tex2jax_process\"\u003e$i$\u003c/span\u003e such that \u003cspan class\u003d\"tex2jax_process\"\u003e$x_ i$\u003c/span\u003e in one sequence is different from \u003cspan class\u003d\"tex2jax_process\"\u003e$x_ i$\u003c/span\u003e in the other sequence. Output this count modulo \u003cspan class\u003d\"tex2jax_process\"\u003e$10^9{+}7$\u003c/span\u003e.\u003c/p\u003e "}},{"title":"Input","value":{"format":"HTML","content":"\u003cp\u003eEach test case will begin with a line with two space-separated integers \u003cspan class\u003d\"tex2jax_process\"\u003e$m$\u003c/span\u003e (\u003cspan class\u003d\"tex2jax_process\"\u003e$0\\! \\le \\! m\\! \\le \\! 16$\u003c/span\u003e) and \u003cspan class\u003d\"tex2jax_process\"\u003e$n$\u003c/span\u003e (\u003cspan class\u003d\"tex2jax_process\"\u003e$1\\! \\le \\! n\\! \\le \\! 2^ m$\u003c/span\u003e), where \u003cspan class\u003d\"tex2jax_process\"\u003e$2^ m$\u003c/span\u003e is the length of the \u003cspan class\u003d\"tex2jax_process\"\u003e$p$\u003c/span\u003e sequence, and \u003cspan class\u003d\"tex2jax_process\"\u003e$n$\u003c/span\u003e is the length of the \u003cspan class\u003d\"tex2jax_process\"\u003e$x$\u003c/span\u003e sequences.\u003c/p\u003e \n\u003cp\u003eEach of the next \u003cspan class\u003d\"tex2jax_process\"\u003e$2^ m$\u003c/span\u003e lines will contain a single integer \u003cspan class\u003d\"tex2jax_process\"\u003e$p$\u003c/span\u003e (\u003cspan class\u003d\"tex2jax_process\"\u003e$1\\! \\le \\! p\\! \\le \\! n$\u003c/span\u003e). These are the values of the sequence \u003cspan class\u003d\"tex2jax_process\"\u003e$p_0, p_1, \\ldots , p_{2^ m{-}1}$\u003c/span\u003e, in order. Every value from \u003cspan class\u003d\"tex2jax_process\"\u003e$1$\u003c/span\u003e to \u003cspan class\u003d\"tex2jax_process\"\u003e$n$\u003c/span\u003e inclusive will appear at least once.\u003c/p\u003e "}},{"title":"Output","value":{"format":"HTML","content":"\u003cp\u003eOutput a single integer, which is the number of sequences \u003cspan class\u003d\"tex2jax_process\"\u003e$x_1, x_2, \\ldots , x_ n$\u003c/span\u003e which could have generated the sequence \u003cspan class\u003d\"tex2jax_process\"\u003e$p_0, p_1, \\ldots , p_{2^ m{-}1}$\u003c/span\u003e from the above algorithm, modulo \u003cspan class\u003d\"tex2jax_process\"\u003e$10^9{+}7$\u003c/span\u003e.\u003c/p\u003e"}},{"title":"Sample 1","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e3 6\n1\n1\n2\n2\n3\n4\n5\n6\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e4\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n"}},{"title":"Sample 2","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e2 3\n1\n2\n1\n3\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e0\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n"}},{"title":"Sample 3","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e3 8\n1\n2\n3\n4\n5\n6\n7\n8\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e1\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n"}}]}