시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 128 MB 12 11 11 91.667%

문제

파급효과가 가능한 퍼즐인지 판별하여라.

파급효과는 여러개의 폴리오미노로 구성된 직사각형의 그리드에서 발생한다. 폴리오미노는 하나 이상의 같은 크기의 정사각형을 이어붙여 만든 도형이다.

우리는 그리드 안의 모든 칸에 자연수를 배치해야한다. 이때 다음과 같은 규칙을 따르며, 일부 자연수는 미리 주어질 수 있다.

  • 1 ~ (폴리노미오 안의 칸 수) 의 자연수들은 해당 폴리노미오 안에 반드시 한번씩만 배치되어야 한다.
  • 하나의 줄이나 행에 동일한 숫자가 배치되기 위해선 두 숫자 사이에 해당 숫자만큼의 다른 칸이 존재해야 한다.
    예를 들어, '1'이 배치된 칸은 서로 인접할 수 없으며, 다른 숫자가 쓰여진 칸이 두 '1' 사이에 하나 이상 존재해야 한다.
    같은 줄이나 행에 '3'이 배치되기 위해선 다른 숫자가 쓰여진 칸이 사이에 세개 이상 존재해야 한다.

이 문제에서 폴리노미오의 크기는 최대 8이다.

 

입력

입력의 첫째 줄에는 테스트 케이스 T가 주어진다. (T<=100)

각각의 테스트 케이스의 첫째 줄에는 두 정수 R, C 가 주어진다. (4<=R, C<=15)

이후 R개 줄에는 그리드에 쓰여진 숫자들을 나태는 C개의 숫자 d_i로 구성된 문자열이 입력된다. (1<=d_i<=8)

이후 R개 줄에는 퍼즐의 각 칸이 폴리노미오로 연결된 방향을 나타내는 C개의 숫자가 입력된다. (이는 RxC 의 테이블이며, 이를 "descr" 라고 하자. 0<=descr(r,c)<=15)

descr(r,c)의 값은 이웃된 칸과의 연결 여부에 따라 다음과 같이 결정된다.

descr(r,c)=0
if(connected((r,c),(r-1,c)) descr(r,c)+=1; (UP)
if(connected((r,c),(r,c+1)) descr(r,c)+=2; (RIGHT)
if(connected((r,c),(r+1,c)) descr(r,c)+=4; (DOWN)
if(connected((r,c),(r,c-1)) descr(r,c)+=8; (LEFT)

예를 들어, 크기가 1인 폴리노미오의 칸은 주변의 어떠한 칸과도 이어져있지 않으므로 0의 값을 가지며, 위쪽의 칸과 아래의 칸에 이어져있는 칸들은 5의 값을 가지게 된다.

출력

각각의 테스트 케이스에 대해 한 "valid" 또는 "invalid" 를 출력하여라.

예제 입력 1

2
6 6
241321
312432
131243
423121
214312
141231
2 12 4 4 6 8
4 5 1 5 5 4
5 1 0 5 1 5
3 8 4 1 4 1
2 10 9 2 9 4
0 2 10 10 8 1
6 6
421321
312432
131243
423121
214312
141231
2 12 4 4 6 8
4 5 1 5 5 4
5 1 0 5 1 5
3 8 4 1 4 1
2 10 9 2 9 4
0 2 10 10 8 1

예제 출력 1

valid
invalid
W3sicHJvYmxlbV9pZCI6IjE4OTYiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWQzMGNcdWFlMDlcdWQ2YThcdWFjZmMiLCJkZXNjcmlwdGlvbiI6IjxwPjxpbWcgc3JjPVwiaHR0cHM6XC9cL29ubGluZWp1ZGdlaW1hZ2VzLnMzLWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb21cL3Byb2JsZW1cLzE4OTZcLzEucG5nXCIgc3R5bGU9XCJmbG9hdDpyaWdodDsgaGVpZ2h0OjM0NnB4OyBsaW5lLWhlaWdodDoyMC44cHg7IG9wYWNpdHk6MC45OyB3aWR0aDozNDdweFwiIFwvPlx1ZDMwY1x1YWUwOVx1ZDZhOFx1YWNmY1x1YWMwMCBcdWFjMDBcdWIyYTVcdWQ1NWMgXHVkMzdjXHVjOTkwXHVjNzc4XHVjOWMwIFx1ZDMxMFx1YmNjNFx1ZDU1OFx1YzVlY1x1Yjc3Yy48XC9wPlxyXG5cclxuPHA+XHVkMzBjXHVhZTA5XHVkNmE4XHVhY2ZjXHViMjk0IFx1YzVlY1x1YjdlY1x1YWMxY1x1Yzc1OCBcdWQzZjRcdWI5YWNcdWM2MjRcdWJiZjhcdWIxNzhcdWI4NWMgXHVhZDZjXHVjMTMxXHViNDFjJm5ic3A7XHVjOWMxXHVjMGFjXHVhYzAxXHVkNjE1XHVjNzU4IFx1YWRmOFx1YjlhY1x1YjRkY1x1YzVkMFx1YzExYyBcdWJjMWNcdWMwZGRcdWQ1NWNcdWIyZTQuIFx1ZDNmNFx1YjlhY1x1YzYyNFx1YmJmOFx1YjE3OFx1YjI5NCBcdWQ1NThcdWIwOTggXHVjNzc0XHVjMGMxXHVjNzU4IFx1YWMxOVx1Yzc0MCBcdWQwNmNcdWFlMzBcdWM3NTggXHVjODE1XHVjMGFjXHVhYzAxXHVkNjE1XHVjNzQ0IFx1Yzc3NFx1YzViNFx1YmQ5OVx1YzVlYyBcdWI5Y2NcdWI0ZTAgXHViM2M0XHVkNjE1XHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM2YjBcdWI5YWNcdWIyOTQgXHVhZGY4XHViOWFjXHViNGRjIFx1YzU0OFx1Yzc1OCBcdWJhYThcdWI0ZTAgXHVjZTc4XHVjNWQwIFx1Yzc5MFx1YzVmMFx1YzIxOFx1Yjk3YyBcdWJjMzBcdWNlNThcdWQ1NzRcdWM1N2NcdWQ1NWNcdWIyZTQuIFx1Yzc3NFx1YjU0YyBcdWIyZTRcdWM3NGNcdWFjZmMgXHVhYzE5XHVjNzQwIFx1YWRkY1x1Y2U1OVx1Yzc0NCBcdWI1MzBcdWI5NzRcdWJhNzAsIFx1Yzc3Y1x1YmQ4MCBcdWM3OTBcdWM1ZjBcdWMyMThcdWIyOTQgXHViYmY4XHViOWFjIFx1YzhmY1x1YzViNFx1YzljOCBcdWMyMTggXHVjNzg4XHViMmU0LjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPjEgfiAoXHVkM2Y0XHViOWFjXHViMTc4XHViYmY4XHVjNjI0IFx1YzU0OFx1Yzc1OCBcdWNlNzggXHVjMjE4KSBcdWM3NTggXHVjNzkwXHVjNWYwXHVjMjE4XHViNGU0XHVjNzQwIFx1ZDU3NFx1YjJmOSBcdWQzZjRcdWI5YWNcdWIxNzhcdWJiZjhcdWM2MjQgXHVjNTQ4XHVjNWQwIFx1YmMxOFx1YjRkY1x1YzJkYyBcdWQ1NWNcdWJjODhcdWM1MjlcdWI5Y2MgXHViYzMwXHVjZTU4XHViNDE4XHVjNWI0XHVjNTdjIFx1ZDU1Y1x1YjJlNC48XC9saT5cclxuXHQ8bGk+XHVkNTU4XHViMDk4XHVjNzU4IFx1YzkwNFx1Yzc3NFx1YjA5OCBcdWQ1ODlcdWM1ZDAgXHViM2Q5XHVjNzdjXHVkNTVjIFx1YzIyYlx1Yzc5MFx1YWMwMCBcdWJjMzBcdWNlNThcdWI0MThcdWFlMzAgXHVjNzA0XHVkNTc0XHVjMTIwIFx1YjQ1MCBcdWMyMmJcdWM3OTAgXHVjMGFjXHVjNzc0XHVjNWQwIFx1ZDU3NFx1YjJmOSBcdWMyMmJcdWM3OTBcdWI5Y2NcdWQwN2NcdWM3NTggXHViMmU0XHViOTc4IFx1Y2U3OFx1Yzc3NCBcdWM4NzRcdWM3YWNcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LjxiciBcLz5cclxuXHRcdWM2MDhcdWI5N2MgXHViNGU0XHVjNWI0LCAmIzM5OzEmIzM5O1x1Yzc3NCBcdWJjMzBcdWNlNThcdWI0MWMgXHVjZTc4XHVjNzQwIFx1YzExY1x1Yjg1YyBcdWM3NzhcdWM4MTFcdWQ1NjAgXHVjMjE4IFx1YzVjNlx1YzczY1x1YmE3MCwgXHViMmU0XHViOTc4IFx1YzIyYlx1Yzc5MFx1YWMwMCBcdWM0ZjBcdWM1ZWNcdWM5YzQgXHVjZTc4XHVjNzc0IFx1YjQ1MCAmIzM5OzEmIzM5OyBcdWMwYWNcdWM3NzRcdWM1ZDAgXHVkNTU4XHViMDk4IFx1Yzc3NFx1YzBjMSBcdWM4NzRcdWM3YWNcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LjxiciBcLz5cclxuXHRcdWFjMTlcdWM3NDAgXHVjOTA0XHVjNzc0XHViMDk4IFx1ZDU4OVx1YzVkMCAmIzM5OzMmIzM5O1x1Yzc3NCBcdWJjMzBcdWNlNThcdWI0MThcdWFlMzAgXHVjNzA0XHVkNTc0XHVjMTIwIFx1YjJlNFx1Yjk3OCBcdWMyMmJcdWM3OTBcdWFjMDAgXHVjNGYwXHVjNWVjXHVjOWM0IFx1Y2U3OFx1Yzc3NCBcdWMwYWNcdWM3NzRcdWM1ZDAgXHVjMTM4XHVhYzFjIFx1Yzc3NFx1YzBjMSBcdWM4NzRcdWM3YWNcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPlx1Yzc3NCBcdWJiMzhcdWM4MWNcdWM1ZDBcdWMxMWMgXHVkM2Y0XHViOWFjXHViMTc4XHViYmY4XHVjNjI0XHVjNzU4IFx1ZDA2Y1x1YWUzMFx1YjI5NCBcdWNkNWNcdWIzMDAgOFx1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPHA+Jm5ic3A7PFwvcD5cclxuIiwiaW5wdXQiOiI8cD5cdWM3ODVcdWI4MjVcdWM3NTggXHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMFx1YjI5NCBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0IFRcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiAoVCZsdDs9MTAwKTxcL3A+XHJcblxyXG48cD5cdWFjMDFcdWFjMDFcdWM3NTggXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwXHViMjk0IFx1YjQ1MCBcdWM4MTVcdWMyMTggUiwgQyBcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiAoNCZsdDs9UiwgQyZsdDs9MTUpPFwvcD5cclxuXHJcbjxwPlx1Yzc3NFx1ZDZjNCBSXHVhYzFjIFx1YzkwNFx1YzVkMFx1YjI5NCBcdWFkZjhcdWI5YWNcdWI0ZGNcdWM1ZDAgXHVjNGYwXHVjNWVjXHVjOWM0IFx1YzIyYlx1Yzc5MFx1YjRlNFx1Yzc0NCBcdWIwOThcdWQwZGNcdWIyOTQmbmJzcDtDXHVhYzFjXHVjNzU4IFx1YzIyYlx1Yzc5MCBkX2lcdWI4NWMgXHVhZDZjXHVjMTMxXHViNDFjIFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc3NCBcdWM3ODVcdWI4MjVcdWI0MWNcdWIyZTQuICgxJmx0Oz1kX2kmbHQ7PTgpPFwvcD5cclxuXHJcbjxwPlx1Yzc3NFx1ZDZjNCBSXHVhYzFjIFx1YzkwNFx1YzVkMFx1YjI5NCBcdWQzN2NcdWM5OTBcdWM3NTggXHVhYzAxIFx1Y2U3OFx1Yzc3NCBcdWQzZjRcdWI5YWNcdWIxNzhcdWJiZjhcdWM2MjRcdWI4NWMgXHVjNWYwXHVhY2IwXHViNDFjIFx1YmMyOVx1ZDVhNVx1Yzc0NCBcdWIwOThcdWQwYzBcdWIwYjRcdWIyOTQgQ1x1YWMxY1x1Yzc1OCBcdWMyMmJcdWM3OTBcdWFjMDAgXHVjNzg1XHViODI1XHViNDFjXHViMmU0LiZuYnNwOyhcdWM3NzRcdWIyOTQgUnhDIFx1Yzc1OCBcdWQxNGNcdWM3NzRcdWJlMTRcdWM3NzRcdWJhNzAsIFx1Yzc3NFx1Yjk3YyAmcXVvdDtkZXNjciZxdW90OyBcdWI3N2NcdWFjZTAgXHVkNTU4XHVjNzkwLiAwJmx0Oz1kZXNjcihyLGMpJmx0Oz0xNSk8XC9wPlxyXG5cclxuPHA+ZGVzY3IocixjKVx1Yzc1OCBcdWFjMTJcdWM3NDAgXHVjNzc0XHVjNmMzXHViNDFjIFx1Y2U3OFx1YWNmY1x1Yzc1OCBcdWM1ZjBcdWFjYjAgXHVjNWVjXHViZDgwXHVjNWQwIFx1YjUzMFx1Yjc3YyBcdWIyZTRcdWM3NGNcdWFjZmMgXHVhYzE5XHVjNzc0IFx1YWNiMFx1YzgxNVx1YjQxY1x1YjJlNC48XC9wPlxyXG5cclxuPHByZT5cclxuZGVzY3IocixjKT0wXHJcbmlmKGNvbm5lY3RlZCgocixjKSwoci0xLGMpKSBkZXNjcihyLGMpKz0xOyAoVVApXHJcbmlmKGNvbm5lY3RlZCgocixjKSwocixjKzEpKSBkZXNjcihyLGMpKz0yOyAoUklHSFQpXHJcbmlmKGNvbm5lY3RlZCgocixjKSwocisxLGMpKSBkZXNjcihyLGMpKz00OyAoRE9XTilcclxuaWYoY29ubmVjdGVkKChyLGMpLChyLGMtMSkpIGRlc2NyKHIsYykrPTg7IChMRUZUKTxcL3ByZT5cclxuXHJcbjxwPlx1YzYwOFx1Yjk3YyBcdWI0ZTRcdWM1YjQsIFx1ZDA2Y1x1YWUzMFx1YWMwMCAxXHVjNzc4IFx1ZDNmNFx1YjlhY1x1YjE3OFx1YmJmOFx1YzYyNFx1Yzc1OCBcdWNlNzhcdWM3NDAgXHVjOGZjXHViY2MwXHVjNzU4IFx1YzViNFx1YjVhMFx1ZDU1YyBcdWNlNzhcdWFjZmNcdWIzYzQgXHVjNzc0XHVjNWI0XHVjODM4XHVjNzg4XHVjOWMwIFx1YzU0YVx1YzczY1x1YmJjMFx1Yjg1YyAwXHVjNzU4IFx1YWMxMlx1Yzc0NCBcdWFjMDBcdWM5YzBcdWJhNzAsIFx1YzcwNFx1Y2FiZFx1Yzc1OCBcdWNlNzhcdWFjZmMgXHVjNTQ0XHViNzk4XHVjNzU4IFx1Y2U3OFx1YzVkMCBcdWM3NzRcdWM1YjRcdWM4MzhcdWM3ODhcdWIyOTQgXHVjZTc4XHViNGU0XHVjNzQwIDVcdWM3NTggXHVhYzEyXHVjNzQ0IFx1YWMwMFx1YzljMFx1YWM4YyBcdWI0MWNcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVhYzAxXHVhYzAxXHVjNzU4IFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM1ZDAgXHViMzAwXHVkNTc0IFx1ZDU1YyAmcXVvdDt2YWxpZCZxdW90OyBcdWI2MTBcdWIyOTQgJnF1b3Q7aW52YWxpZCZxdW90OyBcdWI5N2MgXHVjZDljXHViODI1XHVkNTU4XHVjNWVjXHViNzdjLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IktvcmVhbiJ9LHsicHJvYmxlbV9pZCI6IjE4OTYiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJSaXBwbGUgRWZmZWN0IiwiZGVzY3JpcHRpb24iOiI8cD48aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC9vbmxpbmVqdWRnZWltYWdlcy5zMy1hcC1ub3J0aGVhc3QtMS5hbWF6b25hd3MuY29tXC9wcm9ibGVtXC8xODk2XC8xLnBuZ1wiIHN0eWxlPVwiZmxvYXQ6cmlnaHQ7IGhlaWdodDozNDZweDsgd2lkdGg6MzQ3cHhcIiBcLz5DaGVjayBpZiBhIHNvbHV0aW9uIHRvIGEgUmlwcGxlIEVmZmVjdCBwdXp6bGUgaXMgdmFsaWQuPFwvcD5cclxuXHJcbjxwPlJpcHBsZSBFZmZlY3QgaXMgcGxheWVkIG9uIGEgcmVjdGFuZ3VsYXIgZ3JpZCBkaXZpZGVkIGludG8gcG9seW9taW5vZXMuIEEgcG9seW9taW5vIGlzIGEgcGxhbmUgZ2VvbWV0cmljIGZpZ3VyZSBmb3JtZWQgYnkgam9pbmluZyBvbmUgb3IgbW9yZSBlcXVhbCBzcXVhcmVzIGVkZ2UgdG8gZWRnZS48XC9wPlxyXG5cclxuPHA+VGhlIHNvbHZlciBtdXN0IHBsYWNlIG9uZSBwb3NpdGl2ZSBpbnRlZ2VyIGludG8gZWFjaCBjZWxsIG9mIHRoZSBncmlkIC0gc29tZSBvZiB3aGljaCBtYXkgYmUgZ2l2ZW4gaW4gYWR2YW5jZSAtIGFjY29yZGluZyB0byB0aGVzZSBydWxlczo8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5FdmVyeSBpbnRlZ2VyIGZyb20gMSB0byB0aGUgcXVhbnRpdHkgb2YgY2VsbHMgaW4gYSBwb2x5b21pbm8gbXVzdCBhcHBlYXIgZXhhY3RseSBvbmNlIGluIHRoYXQgcG9seW9taW5vLjxcL2xpPlxyXG5cdDxsaT5JZiB0d28gaWRlbnRpY2FsIG51bWJlcnMgYXBwZWFyIGluIHRoZSBzYW1lIHJvdyBvciBjb2x1bW4sIGF0IGxlYXN0IHRoYXQgbWFueSBjZWxscyB3aXRoIG90aGVyIG51bWJlcnMgbXVzdCBzZXBhcmF0ZSB0aGVtLjxiciBcLz5cclxuXHRGb3IgZXhhbXBsZSwgdHdvIGNlbGxzIGJvdGggY29udGFpbmluZyAmIzM5OzEmIzM5OyBtYXkgbm90IGJlIG9ydGhvZ29uYWxseSBhZGphY2VudCwgYnV0IG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgY2VsbCBiZXR3ZWVuIHRoZW0gd2l0aCBhIGRpZmZlcmVudCBudW1iZXIuPGJyIFwvPlxyXG5cdFR3byBjZWxscyBtYXJrZWQgJiMzOTszJiMzOTsgaW4gdGhlIHNhbWUgcm93IG9yIGNvbHVtbiBtdXN0IGhhdmUgYXQgbGVhc3QgdGhyZWUgY2VsbHMgd2l0aCBvdGhlciBudW1iZXJzIGJldHdlZW4gdGhlbSBpbiB0aGF0IHJvdyBvciBjb2x1bW4sIGFuZCBzbyBvbi48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5JbiB0aGlzIHByb2JsZW0gcG9seW9taW5vZXMgd2lsbCBiZSBvZiBzaXplIGF0IG1vc3QgOC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBpbnB1dCBzdGFydHMgd2l0aCBhIGxpbmUgY29udGFpbmluZyBhbiBpbnRlZ2VyIFQgKFQgJmx0Oz0gMTAwKSwgdGhlIG51bWJlciBvZiB0ZXN0IGNhc2VzLjxcL3A+XHJcblxyXG48cD5FYWNoIHRlc3QgY2FzZSBzdGFydHMgd2l0aCB0d28gaW50ZWdlcnMgb24gYSBsaW5lLCBSIGFuZCBDICg0Jmx0Oz1SLEMmbHQ7PTE1KS48XC9wPlxyXG5cclxuPHA+UiBsaW5lcyBmb2xsb3csIGVhY2ggY29udGFpbmluZyBhIHN0cmluZyBvZiBDIGRpZ2l0cyBkX2koMSZsdDs9ZF9pJmx0Oz04KSwgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBzb2x1dGlvbi48XC9wPlxyXG5cclxuPHA+TmV4dCBSIGxpbmVzIHdpbGwgY29udGFpbiBDIGludGVnZXJzIChSeEMgdGFibGUsIHdlIHdpbGwgY2FsbCBpdCAmcXVvdDtkZXNjciZxdW90OyksIGVhY2ggZGVzY3JpYmluZyB0aGUgY29ycmVzcG9uZGluZyBjZWxsIGluIHRoZSBwdXp6bGUgKDAmbHQ7PWRlc2NyKHIsYykmbHQ7PTE1KS48XC9wPlxyXG5cclxuPHA+VGhlIHZhbHVlIG9mIGRlc2NyKHIsYykgaXMgZGV0ZXJtaW5lZCBieSB0aGUgdmFsdWVzIG9mIGNvbm5lY3Rpb25zIHdpdGggbmVpZ2hib3VyaW5nIGNlbGxzLCBpbiB0aGUgZm9sbG93aW5nIG1hbm5lcjo8XC9wPlxyXG5cclxuPHByZT5cclxuZGVzY3IocixjKT0wXHJcbmlmKGNvbm5lY3RlZCgocixjKSwoci0xLGMpKSBkZXNjcihyLGMpKz0xOyAoVVApXHJcbmlmKGNvbm5lY3RlZCgocixjKSwocixjKzEpKSBkZXNjcihyLGMpKz0yOyAoUklHSFQpXHJcbmlmKGNvbm5lY3RlZCgocixjKSwocisxLGMpKSBkZXNjcihyLGMpKz00OyAoRE9XTilcclxuaWYoY29ubmVjdGVkKChyLGMpLChyLGMtMSkpIGRlc2NyKHIsYykrPTg7IChMRUZUKVxyXG48XC9wcmU+XHJcblxyXG48cD5Gb3IgZXhhbXBsZSwgYSBwb2x5b21pbm8gb2Ygc2l6ZSAxIChzaW5nbGUgc3F1YXJlIG5vdCBjb25uZWN0ZWQgdG8gb3RoZXJzKSB3aWxsIGhhdmUgdGhlIHZhbHVlIG9mIDAgYW5kIGEgc3F1YXJlIHRoYXQgaXMgY29ubmVjdGVkIG9ubHkgdG8gdGhlIHNxdWFyZXMgYWJvdmUgYW5kIGJlbG93IHdpbGwgaGF2ZSB0aGUgdmFsdWUgb2YgNS48XC9wPlxyXG5cclxuPHA+U2VlIHNhbXBsZSBpbnB1dCBmb3IgY2xhcmlmaWNhdGlvbi48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5Gb3IgZWFjaCB0ZXN0IGNhc2UgcHJpbnQgZWl0aGVyICZxdW90O3ZhbGlkJnF1b3Q7IG9yICZxdW90O2ludmFsaWQmcXVvdDsgb24gYSBzaW5nbGUgbGluZS48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJFbmdsaXNoIn1d