小 Barney 刚从父母那里得到了一套新的玩具积木。他的积木套装里有 $n$ 个相同的立方体。Barney 立即开始用这些积木搭建各种物体。
Barney 最近搭建的东西是“楼梯”。楼梯由一座或多座立方体塔组成,塔的高度从左到右呈非递增排列。在下图中,你可以看到三个形状各异、均由 12 个立方体组成的物体。前两个是楼梯,而第三个不是。
Barney 注意到,对于某些楼梯,如果你将头向右旋转 90 度,你会看到同样的楼梯,但方向相反!他称这样的楼梯为“对称”的。例如,上面的第一个楼梯是对称的,但第二个不是。形式化地讲,一个楼梯是对称的,当且仅当将图片关于直线 $x = y$ 进行反射后,你得到的仍然是同一个楼梯(其中 $x$ 轴水平向右, $y$ 轴垂直向上)。
Barney 想要用他所有的 $n$ 个立方体搭建一个对称的楼梯。请向他展示如何做到这一点!
输入格式
输入仅一行,包含一个整数 $n$ —— Barney 手中立方体的数量 ($1 \le n \le 100$)。
输出格式
如果无法用 $n$ 个立方体搭建出对称的楼梯,输出一个整数 $-1$。
否则,在第一行输出一个整数 $m$ —— 楼梯图片中的行数和列数 ($1 \le m \le 100$)。然后,输出 $m$ 行来描述这个楼梯。每一行必须包含恰好 $m$ 个字符,字符为 ‘o’(小写英文字母)或 ‘.’,其中 ‘o’ 表示一个有立方体的单元格,‘.’ 表示一个空单元格。总共必须恰好有 $n$ 个 ‘o’ 字符。左下角的单元格必须包含一个立方体。如果存在多种解,输出其中任意一个即可。
样例
输入 1
3
输出 1
3 ... o.. oo.
输入 2
17
输出 2
5 o.... ooo.. oooo. oooo. ooooo