题目描述
小威和小海正在玩《铁斧斧之争》。
小威给小海狠狠上了一课,在这局游戏中获得了第一名。小威很兴奋,大喊:"收徒!"小海很不服,给他提了一个问题,并且要求他解决,不然就再也不和他玩了。小威立马同意了。
问题是这样的:在《铁斧斧之争》中,有一个 H 行 W 列的棋盘,令 (i,j) 表示从上往下数第 i 行,从左往右数第 j 列的单元格。在这个棋盘中分布着 N 个棋子,当小威经过 (Ri,Ci) 格时可以获得第 i 个棋子,获得 1 的战斗力。小海想知道,如果小威从 (1,1) 开始,反复向下或向右移动一个格子,最终到达 (H,W) 时,能最多获得多少战斗力?
小威立马秒了,但小海捂住了他的嘴,继续说:除此之外,我还想知道你是如何获得最多战斗力的,你还要告诉我获得最多战斗力的这条路径。
小威:"……"
你能帮帮他吗?
输入格式
第一行三个整数 H,W,N,含义如上所述;
接下来 N 行,每行两个整数 Ri,Ci,含义如上所述。
对于所有数据,满足:
- 2≤H,W≤2×105;
- 1≤N≤min(HW−2,2×105);
- 1≤Ri≤H;
- 1≤Ci≤W;
- (Ri,Ci)=(1,1);
- (Ri,Ci)=(H,W);
- (Ri,Ci) 互不相同。
输出格式
输出两行。
第一行一个整数,表示你能获得的最大战斗力;
第二行一个长度为 H+W−2 的字符串,如果第 i 次移动是向下的,则字符串的第 i 个字符为 D
;如果第 i 次移动是向右的,则字符串的第 i 个字符为 R
。
如果有多条路径可以最大化获得的战斗力,则输出任意一条路径即可。
提示
对于第一组样例,一种可行的方案如下图所示:

移动路径为 (1,1)→(2,1)→(2,2)→(2,3)→(3,3)→(3,4),可以在 (2,1),(2,3),(3,3) 处得到三个棋子。