{"trustable":false,"prependHtml":"\u003cstyle type\u003d\u0027text/css\u0027\u003e\n .input, .output {\n border: 1px solid #888888;\n }\n .output {\n margin-bottom: 1em;\n position: relative;\n top: -1px;\n }\n .output pre, .input pre {\n background-color: #EFEFEF;\n line-height: 1.25em;\n margin: 0;\n padding: 0.25em;\n }\n \u003c/style\u003e\n \u003clink rel\u003d\"stylesheet\" href\u003d\"//codeforces.org/s/96598/css/problem-statement.css\" type\u003d\"text/css\" /\u003e\u003cscript\u003e window.katexOptions \u003d { disable: true }; \u003c/script\u003e\n\u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {\n inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027], [\u0027$\u0027,\u0027$\u0027]],\n displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027], [\u0027$$\u0027,\u0027$$\u0027]]\n }\n });\n\u003c/script\u003e\n\u003cscript type\u003d\"text/javascript\" async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS_HTML-full\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"HTML","content":"\u003cp\u003eСортировка слиянием - один из самых известных алгоритмов сортировки. Основная функция этого алгоритма, сортирующая промежуток массива $a$ с индексами из $[l, r)$, может быть реализована следующим образом:\u003c/p\u003e\n\u003col\u003e \n \u003cli\u003e Если промежуток $[l, r)$ уже отсортирован в неубывающем порядке (то есть, для каждого $i$, такого, что $l \\le i \u003c r - 1$, $a[i] \\le a[i + 1]$), завершить вызов функции; \u003c/li\u003e\n \u003cli\u003e Присвоить $mid \u003d \\lfloor \\frac{l + r}{2} \\rfloor$;\u003c/li\u003e\n \u003cli\u003e Вызвать $mergesort(a, l, mid)$;\u003c/li\u003e\n \u003cli\u003e Вызвать $mergesort(a, mid, r)$;\u003c/li\u003e\n \u003cli\u003e Слить промежутки $[l, mid)$ и $[mid, r)$ воедино, после чего промежуток $[l, r)$ будет отсортирован в неубывающем порядке. Функция слияния не вызывает никаких других функций.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eВ этой задаче массив $0$-индексирован, и для сортировки всего массива нужно вызвать $mergesort(a, 0, n)$.\u003c/p\u003e\n\u003cp\u003eКоличество вызовов функции $mergesort$ очень важно, поэтому Иван решил вычислять его во время сортировки. К примеру, если $a \u003d [1, 2, 3, 4]$, то будет сделан $1$ вызов $mergesort$ – $mergesort(0, 4)$, который проверит, что массив отсортирован, и завершится. Если $a \u003d [2, 1, 3]$, то количество вызовов равно $3$: сначала вызывается $mergesort(0, 3)$, в котором присваивается $mid \u003d 1$ и вызывается calls $mergesort(0, 1)$ и $mergesort(1, 3)$, не проводящие никаких рекурсивных вызовов, так как подотрезки $(0, 1)$ и $(1, 3)$ уже отсортированы.\u003c/p\u003e\n\u003cp\u003eИван написал программу, которая считает число вызовов функции $mergesort$, но сейчас ему нужно протестировать её. Для этого необходимо найти массив $a$, такой, что $a$ – перестановка первых $n$ чисел (то есть размер $a$ равен $n$, и каждое целое число из $[1, n]$ встречается в массиве ровно один раз), и число вызовов $mergesort$ при сортировке этого массива равно $k$.\n\u003c/p\u003e\n\u003cp\u003eПомогите Ивану найти нужный массив!\u003c/p\u003e"}},{"title":"Input","value":{"format":"HTML","content":"\u003cp\u003eВ единственной строке записаны два числа $n$ и $k$ ($1 \\le n \\le 100000$, $1 \\le k \\le 200000$) --- размер перестановки, которая нужна Ивану, и количество вызовов $mergesort$, необходимое для её сортировки.\u003c/p\u003e"}},{"title":"Output","value":{"format":"HTML","content":"\u003cp\u003eЕсли перестановка размера $n$, такая, что при её сортировке будет совершено ровно $k$ вызовов $mergesort$, не существует, выведите $-1$. Иначе выведите $n$ целых чисел $a[0], a[1], \\dots, a[n - 1]$ – элементы перестановки. Если решений несколько, выведите любое.\n\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 3\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e2 1 3 \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\u003e4 1\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e1 2 3 4 \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\u003e5 6\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e-1\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n"}}]}