NOTE - Gấp tiền
Tác giả: flashmt
Ngôn ngữ: Pascal
const t:array[1..3] of byte=(0,0,1);
r:array[0..1] of char=('D','U');
var n:byte;
m:longint;
a:array[1..31] of qword;
procedure init;
var i:byte;
begin
a[1]:=2;
for i:=2 to 31 do a[i]:=a[i-1]*2;
end;
function calc(n:byte;m:longint):byte;
var kt:boolean;
begin
if m=a[n] div 2 then exit(0);
if n=2 then exit(t[m]);
kt:=(m>a[n] div 2);
if kt then calc:=1-calc(n-1,a[n]-m)
else calc:=calc(n-1,m);
end;
begin
init;
repeat
readln(n,m);
if n+m=0 then break;
m:=a[n]-m;
if n=2 then writeln(r[t[m]])
else writeln(r[calc(n,m)]);
until false;
end.