시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 5 4 4 80.000%

문제

꿍은 자료구조를 공부할때 각 정렬마다 비교횟수를 구해보라는 문제를 볼때마다 화가난 나머지 세상에서 제일 거지같은 문제를 만들어보고자 다음과 같은 문제를 만들었다.

N과 X가 주어질 때, 삽입정렬이 퀵정렬보다 비교를 최대 X번 더 하는 {1,2,...,N} 으로 구성된 순열의 개수를 구해야 한다. 단, 숫자가 매우 커질수 있으므로 출력값은 1234567로 나눈 나머지를 출력한다.

아래 코드는 삽입정렬 코드이며 비교횟수도 계산해준다.

procedure insertionSort(int N, array A[1..N]) defined as:
    A[0] := -Infinity
    for i := 2 to N do:
        j := i
        Increment(comparison_count)
        while A[j - 1] > A[j] do:
        SWAP(A[j - 1], A[j])
        j := j - 1
        Increment(comparison_count)
    end while
end for

아래코드는 퀵정렬 코드다. 만약 정렬하려는 배열의 길이가 L이라면, partition 알고리즘은 L-1번의 비교를 한다.

procedure quickSort(list A) defined as:
    list less, greater
    if length(A) <= 1 then
        return A

    pivot := A[1]
    for i := 2 to length(A) do:
        Increment(comparison_count)
        if A[i] < pivot then append A[i] to less
                        else append A[i] to greater
        end if
    end for
    return concatenate(quickSort(less), pivot, quickSort(greater))

예를 들어, 순열 (3,1,4,2)를 생각하자. 삽입정렬의 비교횟수는 총 6회로 i=2일때 2번, i=3일때 1번, i=4일때 3번의 비교가 이루어진다. 반면 퀵정렬의 비교횟수는 총 4회로 3이 pivot일때 3회의 비교를 한 후 (1,2)와 (4)로 partition이 이루어진다. 이후 (1,2)에서 1번의 비교가 이루어지므로 총 4회의 비교가 이루어진다.

입력

입력의 첫번째 줄에 두 개의 정수 N과 X가 주어지며 각각의 범위는 1 < N < 32, 1 ≤ X ≤ N^2 이다.

출력

삽입정렬이 퀵정렬보다 최대 X번 비교를 더 하게되는 순열의 개수를 1234567로 나눈 나머지를 출력한다.

예제 입력 1

3 1

예제 출력 1

2

예제 입력 2

6 2

예제 출력 2

719

예제 입력 3

21 3

예제 출력 3

660773

힌트

N=3 일때 가능한 6개의 순열과 각 경우의 정렬별 비교횟수는 아래와 같다.

1 2 3 - NI = 2, NQ = 3
1 3 2 - NI = 3, NQ = 3
2 1 3 - NI = 3, NQ = 2
2 3 1 - NI = 4, NQ = 2
3 1 2 - NI = 4, NQ = 3
3 2 1 - NI = 5, NQ = 3

이 문제의 데이터는 총 10개이고, 다음과 같다.

  • N = 5, X = 1
  • N = 12, X = 2
  • N = 18, X = 3
  • N = 20, X = 1
  • N = 22, X = 5
  • N = 23, X = 3
  • N = 24, X = 4
  • N = 29, X = 2
  • N = 30, X = 5
  • N = 31, X = 1
W3sicHJvYmxlbV9pZCI6IjMzMjIiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWM4MTVcdWI4MmNcdWM3NTggXHVjMmRjXHVhYzA0XHViY2Y1XHVjN2ExXHViM2M0IiwiZGVzY3JpcHRpb24iOiI8cD5cdWFmY2RcdWM3NDAgXHVjNzkwXHViOGNjXHVhZDZjXHVjODcwXHViOTdjIFx1YWNmNVx1YmQ4MFx1ZDU2MFx1YjU0YyBcdWFjMDEgXHVjODE1XHViODJjXHViOWM4XHViMmU0IFx1YmU0NFx1YWQ1MFx1ZDY5Zlx1YzIxOFx1Yjk3YyBcdWFkNmNcdWQ1NzRcdWJjZjRcdWI3N2NcdWIyOTQgXHViYjM4XHVjODFjXHViOTdjIFx1YmNmY1x1YjU0Y1x1YjljOFx1YjJlNCBcdWQ2NTRcdWFjMDBcdWIwOWMgXHViMDk4XHViYTM4XHVjOWMwIFx1YzEzOFx1YzBjMVx1YzVkMFx1YzExYyBcdWM4MWNcdWM3N2MgXHVhYzcwXHVjOWMwXHVhYzE5XHVjNzQwIFx1YmIzOFx1YzgxY1x1Yjk3YyBcdWI5Y2NcdWI0ZTRcdWM1YjRcdWJjZjRcdWFjZTBcdWM3OTAgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1Yzc0MCBcdWJiMzhcdWM4MWNcdWI5N2MgXHViOWNjXHViNGU0XHVjNWM4XHViMmU0LjxcL3A+XHJcblxyXG48cD5OXHVhY2ZjIFhcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM4IFx1YjU0YywgXHVjMGJkXHVjNzg1XHVjODE1XHViODJjXHVjNzc0IFx1ZDAzNVx1YzgxNVx1YjgyY1x1YmNmNFx1YjJlNCBcdWJlNDRcdWFkNTBcdWI5N2MgXHVjZDVjXHViMzAwIFhcdWJjODggXHViMzU0IFx1ZDU1OFx1YjI5NCZuYnNwO3sxLDIsLi4uLE59IFx1YzczY1x1Yjg1YyBcdWFkNmNcdWMxMzFcdWI0MWMgXHVjMjFjXHVjNWY0XHVjNzU4IFx1YWMxY1x1YzIxOFx1Yjk3YyBcdWFkNmNcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LiBcdWIyZTgsIFx1YzIyYlx1Yzc5MFx1YWMwMCBcdWI5ZTRcdWM2YjAgXHVjZWU0XHVjOWM4XHVjMjE4IFx1Yzc4OFx1YzczY1x1YmJjMFx1Yjg1YyBcdWNkOWNcdWI4MjVcdWFjMTJcdWM3NDAgMTIzNDU2N1x1Yjg1YyBcdWIwOThcdWIyMDggXHViMDk4XHViYTM4XHVjOWMwXHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNTQ0XHViNzk4IFx1Y2Y1NFx1YjRkY1x1YjI5NCBcdWMwYmRcdWM3ODVcdWM4MTVcdWI4MmMgXHVjZjU0XHViNGRjXHVjNzc0XHViYTcwIFx1YmU0NFx1YWQ1MFx1ZDY5Zlx1YzIxOFx1YjNjNCBcdWFjYzRcdWMwYjBcdWQ1NzRcdWM5MDBcdWIyZTQuPFwvcD5cclxuXHJcbjxwcmU+XHJcbnByb2NlZHVyZSBpbnNlcnRpb25Tb3J0KGludCBOLCBhcnJheSBBWzEuLk5dKSBkZWZpbmVkIGFzOlxyXG4gICAgQVswXSA6PSAtSW5maW5pdHlcclxuICAgIGZvciBpIDo9IDIgdG8gTiBkbzpcclxuICAgICAgICBqIDo9IGlcclxuICAgICAgICA8c3Ryb25nPkluY3JlbWVudChjb21wYXJpc29uX2NvdW50KTxcL3N0cm9uZz5cclxuICAgICAgICB3aGlsZSBBW2ogLSAxXSAmZ3Q7IEFbal0gZG86XHJcbiAgICAgICAgU1dBUChBW2ogLSAxXSwgQVtqXSlcclxuICAgICAgICBqIDo9IGogLSAxXHJcbiAgICAgICAgPHN0cm9uZz5JbmNyZW1lbnQoY29tcGFyaXNvbl9jb3VudCk8XC9zdHJvbmc+XHJcbiAgICBlbmQgd2hpbGVcclxuZW5kIGZvcjxcL3ByZT5cclxuXHJcbjxwPlx1YzU0NFx1Yjc5OFx1Y2Y1NFx1YjRkY1x1YjI5NCBcdWQwMzVcdWM4MTVcdWI4MmMgXHVjZjU0XHViNGRjXHViMmU0LiBcdWI5Y2NcdWM1N2QgXHVjODE1XHViODJjXHVkNTU4XHViODI0XHViMjk0Jm5ic3A7XHViYzMwXHVjNWY0XHVjNzU4IFx1YWUzOFx1Yzc3NFx1YWMwMCBMXHVjNzc0XHViNzdjXHViYTc0LCBwYXJ0aXRpb24gXHVjNTRjXHVhY2UwXHViOWFjXHVjOTk4XHVjNzQwIEwtMVx1YmM4OFx1Yzc1OCBcdWJlNDRcdWFkNTBcdWI5N2MgXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cHJlPlxyXG5wcm9jZWR1cmUgcXVpY2tTb3J0KGxpc3QgQSkgZGVmaW5lZCBhczpcclxuICAgIGxpc3QgbGVzcywgZ3JlYXRlclxyXG4gICAgaWYgbGVuZ3RoKEEpICZsdDs9IDEgdGhlblxyXG4gICAgICAgIHJldHVybiBBXHJcblxyXG4gICAgcGl2b3QgOj0gQVsxXVxyXG4gICAgZm9yIGkgOj0gMiB0byBsZW5ndGgoQSkgZG86XHJcbiAgICAgICAgPHN0cm9uZz5JbmNyZW1lbnQoY29tcGFyaXNvbl9jb3VudCk8XC9zdHJvbmc+XHJcbiAgICAgICAgaWYgQVtpXSAmbHQ7IHBpdm90IHRoZW4gYXBwZW5kIEFbaV0gdG8gbGVzc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGFwcGVuZCBBW2ldIHRvIGdyZWF0ZXJcclxuICAgICAgICBlbmQgaWZcclxuICAgIGVuZCBmb3JcclxuICAgIHJldHVybiBjb25jYXRlbmF0ZShxdWlja1NvcnQobGVzcyksIHBpdm90LCBxdWlja1NvcnQoZ3JlYXRlcikpPFwvcHJlPlxyXG5cclxuPHA+XHVjNjA4XHViOTdjIFx1YjRlNFx1YzViNCwgXHVjMjFjXHVjNWY0ICgzLDEsNCwyKVx1Yjk3YyBcdWMwZGRcdWFjMDFcdWQ1NThcdWM3OTAuIFx1YzBiZFx1Yzc4NVx1YzgxNVx1YjgyY1x1Yzc1OCBcdWJlNDRcdWFkNTBcdWQ2OWZcdWMyMThcdWIyOTQgXHVjZDFkIDZcdWQ2OGNcdWI4NWMgaT0yXHVjNzdjXHViNTRjIDJcdWJjODgsIGk9M1x1Yzc3Y1x1YjU0YyAxXHViYzg4LCBpPTRcdWM3N2NcdWI1NGMgM1x1YmM4OFx1Yzc1OCBcdWJlNDRcdWFkNTBcdWFjMDAgXHVjNzc0XHViOGU4XHVjNWI0XHVjOWM0XHViMmU0LiBcdWJjMThcdWJhNzQgXHVkMDM1XHVjODE1XHViODJjXHVjNzU4IFx1YmU0NFx1YWQ1MFx1ZDY5Zlx1YzIxOFx1YjI5NCBcdWNkMWQgNFx1ZDY4Y1x1Yjg1YyAzXHVjNzc0IHBpdm90XHVjNzdjXHViNTRjIDNcdWQ2OGNcdWM3NTggXHViZTQ0XHVhZDUwXHViOTdjIFx1ZDU1YyBcdWQ2YzQgKDEsMilcdWM2NDAgKDQpXHViODVjIHBhcnRpdGlvblx1Yzc3NCBcdWM3NzRcdWI4ZThcdWM1YjRcdWM5YzRcdWIyZTQuIFx1Yzc3NFx1ZDZjNCAoMSwyKVx1YzVkMFx1YzExYyAxXHViYzg4XHVjNzU4IFx1YmU0NFx1YWQ1MFx1YWMwMCBcdWM3NzRcdWI4ZThcdWM1YjRcdWM5YzBcdWJiYzBcdWI4NWMgXHVjZDFkIDRcdWQ2OGNcdWM3NTggXHViZTQ0XHVhZDUwXHVhYzAwIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Yzc4NVx1YjgyNVx1Yzc1OCBcdWNjYWJcdWJjODhcdWM5ZjggXHVjOTA0XHVjNWQwIFx1YjQ1MCBcdWFjMWNcdWM3NTggXHVjODE1XHVjMjE4IE5cdWFjZmMgWFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzBcdWJhNzAgXHVhYzAxXHVhYzAxXHVjNzU4IFx1YmM5NFx1YzcwNFx1YjI5NCAxICZsdDsgTiAmbHQ7IDMyLCAxICZsZTsgWCAmbGU7IE5eMiBcdWM3NzRcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVjMGJkXHVjNzg1XHVjODE1XHViODJjXHVjNzc0IFx1ZDAzNVx1YzgxNVx1YjgyY1x1YmNmNFx1YjJlNCBcdWNkNWNcdWIzMDAgWFx1YmM4OCBcdWJlNDRcdWFkNTBcdWI5N2MgXHViMzU0IFx1ZDU1OFx1YWM4Y1x1YjQxOFx1YjI5NCBcdWMyMWNcdWM1ZjRcdWM3NTggXHVhYzFjXHVjMjE4XHViOTdjIDEyMzQ1NjdcdWI4NWMgXHViMDk4XHViMjA4IFx1YjA5OFx1YmEzOFx1YzljMFx1Yjk3YyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IjxwPk49MyBcdWM3N2NcdWI1NGMgXHVhYzAwXHViMmE1XHVkNTVjIDZcdWFjMWNcdWM3NTggXHVjMjFjXHVjNWY0XHVhY2ZjIFx1YWMwMSBcdWFjYmRcdWM2YjBcdWM3NTggXHVjODE1XHViODJjXHViY2M0IFx1YmU0NFx1YWQ1MFx1ZDY5Zlx1YzIxOFx1YjI5NCBcdWM1NDRcdWI3OThcdWM2NDAgXHVhYzE5XHViMmU0LjxcL3A+XHJcblxyXG48cHJlPlxyXG4xIDIgMyAtIE5JID0gMiwgTlEgPSAzXHJcbjEgMyAyIC0gTkkgPSAzLCBOUSA9IDNcclxuMiAxIDMgLSBOSSA9IDMsIE5RID0gMlxyXG4yIDMgMSAtIE5JID0gNCwgTlEgPSAyXHJcbjMgMSAyIC0gTkkgPSA0LCBOUSA9IDNcclxuMyAyIDEgLSBOSSA9IDUsIE5RID0gMzxcL3ByZT5cclxuXHJcbjxwPlx1Yzc3NCBcdWJiMzhcdWM4MWNcdWM3NTggXHViMzcwXHVjNzc0XHVkMTMwXHViMjk0IFx1Y2QxZCAxMFx1YWMxY1x1Yzc3NFx1YWNlMCwgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1YjJlNC48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5OID0gNSwgWCA9IDE8XC9saT5cclxuXHQ8bGk+TiA9IDEyLCBYID0gMjxcL2xpPlxyXG5cdDxsaT5OID0gMTgsIFggPSAzPFwvbGk+XHJcblx0PGxpPk4gPSAyMCwgWCA9IDE8XC9saT5cclxuXHQ8bGk+TiA9IDIyLCBYID0gNTxcL2xpPlxyXG5cdDxsaT5OID0gMjMsIFggPSAzPFwvbGk+XHJcblx0PGxpPk4gPSAyNCwgWCA9IDQ8XC9saT5cclxuXHQ8bGk+TiA9IDI5LCBYID0gMjxcL2xpPlxyXG5cdDxsaT5OID0gMzAsIFggPSA1PFwvbGk+XHJcblx0PGxpPk4gPSAzMSwgWCA9IDE8XC9saT5cclxuPFwvdWw+XHJcbiIsIm9yaWdpbmFsIjoiMCIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVkNTVjXHVhZDZkXHVjNWI0In0seyJwcm9ibGVtX2lkIjoiMzMyMiIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6InNvcnRpbmciLCJkZXNjcmlwdGlvbiI6IjxwPkZvciBnaXZlbiBOIGFuZCBYLCBkZXRlcm1pbmUgdGhlIG51bWJlciBvZiBwZXJtdXRhdGlvbnMgb2YgezEsIDIsICZoZWxsaXA7LCBOfSBvbiB3aGljaCBJbnNlcnRpb24gU29ydCBtYWtlcyBhdCBtb3N0IFggdGltZXMgdGhlIG51bWJlciBvZiBjb21wYXJpc29ucyB0aGF0IFF1aWNrIFNvcnQgbWFrZXMuIFNpbmNlIHRoZSBudW1iZXIgY2FuIGJlIHByZXR0eSBiaWcsIHdlIGFzayB5b3UgdG8gb3V0cHV0IGl0IG1vZHVsbyAxMjM0NTY3LjxcL3A+XHJcblxyXG48cD5UaGUgZm9sbG93aW5nIGlzIG91ciBpbXBsZW1lbnRhdGlvbiBvZiBJbnNlcnRpb24gU29ydCwgd2hpY2ggYWxzbyBjb3VudHMgdGhlIG51bWJlciBvZiBjb21wYXJpc29ucyBpdCBtYWtlczombmJzcDs8XC9wPlxyXG5cclxuPHByZT5cclxucHJvY2VkdXJlIGluc2VydGlvblNvcnQoaW50IE4sIGFycmF5IEFbMS4uTl0pIGRlZmluZWQgYXM6XHJcbiAgICBBWzBdIDo9IC1JbmZpbml0eVxyXG4gICAgZm9yIGkgOj0gMiB0byBOIGRvOlxyXG4gICAgICAgIGogOj0gaVxyXG4gICAgICAgIDxzdHJvbmc+SW5jcmVtZW50KGNvbXBhcmlzb25fY291bnQpPFwvc3Ryb25nPlxyXG4gICAgICAgIHdoaWxlIEFbaiAtIDFdICZndDsgQVtqXSBkbzpcclxuICAgICAgICBTV0FQKEFbaiAtIDFdLCBBW2pdKVxyXG4gICAgICAgIGogOj0gaiAtIDFcclxuICAgICAgICA8c3Ryb25nPkluY3JlbWVudChjb21wYXJpc29uX2NvdW50KTxcL3N0cm9uZz5cclxuICAgIGVuZCB3aGlsZVxyXG5lbmQgZm9yPFwvcHJlPlxyXG5cclxuPHA+VGhlIGZvbGxvd2luZyBpcyBvdXIgaW1wbGVtZW50YXRpb24gb2YgUXVpY2sgU29ydC4gSWYgTCBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBsaXN0IHdlIGFyZSBzb3J0aW5nIGluIGEgcmVjdXJzaXZlIHN0ZXAsIHRoZSBwYXJ0aXRpb24gYWxnb3JpdGhtIG1ha2VzIEwtMSBjb21wYXJpc29ucy48XC9wPlxyXG5cclxuPHByZT5cclxucHJvY2VkdXJlIHF1aWNrU29ydChsaXN0IEEpIGRlZmluZWQgYXM6XHJcbiAgICBsaXN0IGxlc3MsIGdyZWF0ZXJcclxuICAgIGlmIGxlbmd0aChBKSAmbHQ7PSAxIHRoZW5cclxuICAgICAgICByZXR1cm4gQVxyXG5cclxuICAgIHBpdm90IDo9IEFbMV1cclxuICAgIGZvciBpIDo9IDIgdG8gbGVuZ3RoKEEpIGRvOlxyXG4gICAgICAgIDxzdHJvbmc+SW5jcmVtZW50KGNvbXBhcmlzb25fY291bnQpPFwvc3Ryb25nPlxyXG4gICAgICAgIGlmIEFbaV0gJmx0OyBwaXZvdCB0aGVuIGFwcGVuZCBBW2ldIHRvIGxlc3NcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBhcHBlbmQgQVtpXSB0byBncmVhdGVyXHJcbiAgICAgICAgZW5kIGlmXHJcbiAgICBlbmQgZm9yXHJcbiAgICByZXR1cm4gY29uY2F0ZW5hdGUocXVpY2tTb3J0KGxlc3MpLCBwaXZvdCwgcXVpY2tTb3J0KGdyZWF0ZXIpKTxcL3ByZT5cclxuXHJcbjxwPkZvciBleGFtcGxlLCBsZXQgdXMgY29uc2lkZXIgdGhlIHBlcm11dGF0aW9uICgzLCAxLCA0LCAyKS48XC9wPlxyXG5cclxuPHA+VGhlIG51bWJlciBvZiBjb21wYXJpc29ucyBmb3IgSW5zZXJ0aW9uIFNvcnQgaXMgNjogMiBjb21wYXJpc29ucyBmb3IgaT0yLCAxIGZvciBpPTMsIGFuZCAzIGZvciBpPTQuJm5ic3A7PFwvcD5cclxuXHJcbjxwPlRoZSBudW1iZXIgb2YgY29tcGFyaXNvbnMgZm9yIFF1aWNrIFNvcnQgaXMgNC4gSW4gdGhlIGZpcnN0IGl0ZXJhdGlvbiAzIGlzIHRoZSBwaXZvdC4gSXQgdGFrZXMgMyBjb21wYXJpc29ucyB0byBwYXJ0aXRpb24gKDEsNCwyKSBpbnRvICgxLDIpIGFuZCAoNCkuIFRvIGZ1cnRoZXIgc29ydCAoMSwyKSBpdCB0YWtlcyAxIG1vcmUgY29tcGFyaXNvbi48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBmaXJzdCBsaW5lIGNvbnRhaW5zIDIgaW50ZWdlcnMsIHNlcGFyYXRlZCBieSBhIHNwYWNlOiBOIGFuZCBYLjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPkluIGFsbCBpbnB1dHMgZmlsZXMsIDEgJmx0OyBOICZsdDsgMzIuPFwvbGk+XHJcblx0PGxpPkluIGFsbCBpbnB1dHMgZmlsZXMsIDEgJmxlOyBYICZsZTsgTjxzdXA+MjxcL3N1cD48XC9saT5cclxuPFwvdWw+XHJcbiIsIm91dHB1dCI6IjxwPlRoZSBudW1iZXIgb2YgcGVybXV0YXRpb25zIGZvciB3aGljaCBJbnNlcnRpb24gU29ydCBpcyBhdCBtb3N0IFggdGltZXMgc2xvd2VyIHRoYW4gUXVpY2sgU29ydC4gVGhlIG51bWJlciBzaG91bGQgYmUgcHJpbnRlZCBtb2R1bG8gMTIzNDU2Ny4mbmJzcDs8XC9wPlxyXG4iLCJoaW50IjoiPHA+Rm9yIHRoZSA2IHBvc3NpYmxlIHBlcm11dGF0aW9ucyB3ZSBoYXZlIE5JIGFuZCBOUSwgdGhlIG51bWJlciBvZiBjb21wYXJpc29ucyBmb3IgSW5zZXJ0aW9uIFNvcnQgYW5kIFF1aWNrIFNvcnQ6Jm5ic3A7PFwvcD5cclxuXHJcbjxwcmU+XHJcbjEgMiAzIC0gTkkgPSAyLCBOUSA9IDNcclxuMSAzIDIgLSBOSSA9IDMsIE5RID0gM1xyXG4yIDEgMyAtIE5JID0gMywgTlEgPSAyXHJcbjIgMyAxIC0gTkkgPSA0LCBOUSA9IDJcclxuMyAxIDIgLSBOSSA9IDQsIE5RID0gM1xyXG4zIDIgMSAtIE5JID0gNSwgTlEgPSAzIDxcL3ByZT5cclxuIiwib3JpZ2luYWwiOiIxIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWM2MDFcdWM1YjQifV0=