#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <map>#include <stack>#include <queue>#include <vector>#define LL long long#define INF 1e9#define EPS 1e-9using namespace std;const int maxn=1234;int ai[maxn];int dp[maxn][maxn];int li2[maxn][maxn];int T;int n;void init(){ scanf("%d",&n); for(int i=1; i<=n; i++)scanf("%d",&ai[i]);}vector<int> V;void play(){ for(int i=0; i<=n; i++) { for(int j=0; j<=1000; j++) { dp[i][j]=INF; } } dp[0][0]=0; for(int i=1; i<=n; i++) { for(int j=0; j<=1000; j++) { if(dp[i-1][j]==INF)continue; int q=j+ai[i]; int p=j-ai[i]; int qn=max(dp[i-1][j],q); if(q<=1000&&qn<dp[i][q]) { dp[i][q]=qn; li2[i][q]=j; } int pn=max(dp[i-1][j],j); if(p>=0&&pn<dp[i][p]) { dp[i][p]=pn; li2[i][p]=j; } } } if(dp[n][0]!=INF) { V.clear(); V.push_back(2); int st=n-1; int now=li2[n][0]; while(st>=1){ int next=li2[st][now]; int ff=now-next; if(ff>0)V.push_back(1); else V.push_back(2); st--; now=next; } bool first=1; for(int i=V.size()-1;i>=0;i--){ if(V[i]==1)printf("U"); else printf("D"); } printf("n"); } else { printf("IMPOSSIBLEn"); }}int main(){ scanf("%d",&T); while(T--) { init(); play(); } return 0;}