本题的主角——画家文森特(Vincent)年轻时花了大量时间周游世界。无数旅途中的风景常常成为他如今备受赞誉的艺术作品的灵感来源。有一次,文森特置身于一个高楼林立的大都市中,他立刻被这壮丽的景色所陶醉,并着手开始创作。出于一些普通程序员无法理解的原因,文森特决定只画他眼前看到的摩天大楼的轮廓(silhouette)。不幸的是,在他完成这幅杰作一周后,画作自燃了。
为了重建这幅画,文森特向各方寻求帮助:建筑师为他提供了摩天大楼的精确尺寸,物理学家忽略了空气阻力,数学家将一切映射到了一个平面上,现在轮到你了!
在你的视角中,文森特的摩天大楼是边与坐标轴平行且有一条边位于横轴(abscissa)上的矩形。画面中横轴的部分应该用字符 * 表示,摩天大楼的轮廓用 # 表示,画面的其余部分用 . 填充。画面的左边界必须从最左边的摩天大楼开始,而右边界必须到最右边的摩天大楼结束。此外,为了验证数学家得到的结果,请输出给定轮廓的周长,不计算位于横轴上的边。
输入格式
输入的第一行包含一个整数 $N$($1 \le N \le 10\,000$),表示摩天大楼的数量。
接下来的 $N$ 行,每行包含三个整数 $L_i, R_i$ 和 $H_i$($1 \le L_i, R_i, H_i \le 1\,000$,$3 \le R_i - L_i \le 1\,000$),描述第 $i$ 个摩天大楼的位置。在直角坐标系中,该摩天大楼被视为一个左下角为 $(L_i, 0)$、右上角为 $(R_i, H_i)$ 的矩形。
输出格式
输出的第一行必须包含文森特轮廓的周长(不计底边)。
接下来的 $h+1$ 行(其中 $h$ 是最高摩天大楼的高度)必须包含如题目描述中所述的文森特的画作。
子任务
在占总分 50% 的测试数据中,满足 $1 \le N \le 100$ 且 $1 \le L_i, R_i, H_i \le 100$。
如果程序输出的周长正确但图像错误,将获得该测试点 40% 的分数。
如果程序输出的周长错误但图像正确,将获得该测试点 60% 的分数。
如果你只能画出图像但无法计算周长,请在第一行输出任意一个整数,然后输出图像。
样例
输入样例 1
3 1 5 4 7 11 3 9 13 5
输出样例 1
28 ........#### ####....#..# #..#..###..# #..#..#....# #..#..#....# ************
输入样例 2
6 2 8 7 5 13 5 2 18 3 23 26 5 20 31 7 21 30 10
输出样例 2
61 ...................#########. ...................#.......#. ...................#.......#. ######............##.......## #....#............#.........# #....######.......#.........# #.........#.......#.........# #.........######..#.........# #..............#..#.........# #..............#..#.........# *****************************
说明
样例 1 说明: 蓝色表示摩天大楼的轮廓(字符 #),黄色表示位于文森特画作中的横轴部分(字符 *)。