길이가 모두 2의 거듭제곱인 1차원 블록 n개가 주어진 순서대로 하나씩 나온다. 블록이 나오면 지금까지 쌓아 놓은 블록 줄의 맨 왼쪽이나 맨 오른쪽에 붙여야 한다. 첫 블록은 어느 쪽에 붙여도 같은 줄이 된다.
이웃한 두 블록의 길이가 같아지면 두 블록은 길이가 두 배인 블록 하나로 합쳐진다. 합쳐진 블록이 다시 이웃과 길이가 같으면 길이가 같은 이웃이 없어질 때까지 합쳐진다. 합칠 수 있는 이웃 쌍은 어느 순간에도 최대 하나뿐이라서, 합쳐지는 결과는 고른 방향만으로 정해진다.
예를 들어 현재 줄이 2, 4, 16일 때 길이 2인 블록을 왼쪽에 붙이면 2, 2, 4, 16이 4, 4, 16을 거쳐 8, 16이 된다. 같은 블록을 오른쪽에 붙이면 2, 4, 16, 2가 되고 합쳐지는 쌍은 없다.
블록 n개를 모두 붙인 뒤 블록이 하나만 남으면 이긴다. 주어진 순서로 이길 수 있는지 판정하고, 이길 수 있으면 붙이는 방향을 출력하라.
첫 줄에 테스트 케이스의 수 T (1≤T≤100)가 주어진다.
각 테스트 케이스는 두 줄이다. 첫 줄에 블록의 개수 n (1≤n≤1000)이 주어진다. 둘째 줄에 블록 n개의 길이가 나오는 순서대로 공백으로 구분되어 주어진다. 각 길이는 2의 거듭제곱이고, 한 테스트 케이스의 길이 합은 213 이하다.
각 테스트 케이스마다 한 줄을 출력한다.
블록 하나만 남길 수 없으면 no를 출력한다.
남길 수 있으면 길이가 n인 문자열을 출력한다. i번째 문자는 i번째 블록을 왼쪽에 붙이면 l, 오른쪽에 붙이면 r이다. 이기는 문자열이 여러 개면 사전순으로 가장 앞서는 하나만 출력한다. l이 r보다 앞서고 첫 블록은 어느 쪽에 붙여도 같으므로, 이 문자열의 첫 문자는 항상 l이다.