{"trustable":true,"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":"\n \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\n \u003cspan class\u003d\"tex2jax_process\"\u003e$n$\u003c/span\u003e distinct integers\n \u003cspan class\u003d\"tex2jax_process\"\u003e$x_1, x_2, \\ldots , x_ n$\u003c/span\u003e,\n with \u003cspan class\u003d\"tex2jax_process\"\u003e$0\\! \\le \\! x_ i\\! \\le \\! 2^\n 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\n \u003cspan class\u003d\"tex2jax_process\"\u003e$p_ y$\u003c/span\u003e such that\n \u003cspan class\u003d\"tex2jax_process\"\u003e$x_{p_ y}$\u003c/span\u003e has a maximum\n bitwise-\u003cspan class\u003d\"tex2jax_process\"\u003e$\\operatorname\n {XOR}$\u003c/span\u003e with \u003cspan class\u003d\"tex2jax_process\"\u003e$y$\u003c/span\u003e.\n That is, \u003cspan class\u003d\"tex2jax_process\"\u003e$y\\! \\oplus \\! x_{p_\n 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\n (\u003cspan class\u003d\"tex2jax_process\"\u003e$\\oplus $\u003c/span\u003e means\n bitwise-\u003cspan class\u003d\"tex2jax_process\"\u003e$\\operatorname\n {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,\n 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\n have generated that \u003cspan class\u003d\"tex2jax_process\"\u003e$p$\u003c/span\u003e\n sequence from the above algorithm. Two \u003cspan class\u003d\"tex2jax_process\"\u003e$x$\u003c/span\u003e sequences are different if there\n is some \u003cspan class\u003d\"tex2jax_process\"\u003e$i$\u003c/span\u003e such that\n \u003cspan class\u003d\"tex2jax_process\"\u003e$x_ i$\u003c/span\u003e in one sequence is\n different from \u003cspan class\u003d\"tex2jax_process\"\u003e$x_ i$\u003c/span\u003e in\n the other sequence. Output this count modulo \u003cspan class\u003d\"tex2jax_process\"\u003e$10^9{+}7$\u003c/span\u003e.\u003c/p\u003e\n \u003ch2\u003eInput\u003c/h2\u003e\n \u003cp\u003eEach test case will begin with a line with two\n 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\n \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\n \u003cspan class\u003d\"tex2jax_process\"\u003e$2^ m$\u003c/span\u003e is the length of\n the \u003cspan class\u003d\"tex2jax_process\"\u003e$p$\u003c/span\u003e sequence, and\n \u003cspan class\u003d\"tex2jax_process\"\u003e$n$\u003c/span\u003e is the length of the\n \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\n 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\n the values of the sequence \u003cspan class\u003d\"tex2jax_process\"\u003e$p_0,\n p_1, \\ldots , p_{2^ m{-}1}$\u003c/span\u003e, in order. Every value from\n \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\n once.\u003c/p\u003e\n \u003ch2\u003eOutput\u003c/h2\u003e\n \u003cp\u003eOutput a single integer, which is the number of sequences\n \u003cspan class\u003d\"tex2jax_process\"\u003e$x_1, x_2, \\ldots , x_ n$\u003c/span\u003e\n 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\n the above algorithm, modulo \u003cspan class\u003d\"tex2jax_process\"\u003e$10^9{+}7$\u003c/span\u003e.\u003c/p\u003e\n \u003ch2\u003eSample 1\u003c/h2\u003e\u003cbody\u003e\u003ctable class\u003d\"vjudge_sample\"\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\u003c/body\u003e\n \u003ch2\u003eSample 2\u003c/h2\u003e\u003cbody\u003e\u003ctable class\u003d\"vjudge_sample\"\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\u003c/body\u003e\n \u003ch2\u003eSample 3\u003c/h2\u003e\u003cbody\u003e\u003ctable class\u003d\"vjudge_sample\"\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\u003c/body\u003e\n "}}]}