{"trustable":true,"prependHtml":"\u003cstyle type\u003d\u0027text/css\u0027\u003e\n .input, .output {\n border: 1px solid #888888;\n }\n .output {\n margin-bottom: 1em;\n position: relative;\n top: -1px;\n }\n .output pre, .input pre {\n background-color: #EFEFEF;\n line-height: 1.25em;\n margin: 0;\n padding: 0.25em;\n }\n \u003c/style\u003e\n \u003clink rel\u003d\"stylesheet\" href\u003d\"//codeforces.org/s/96598/css/problem-statement.css\" type\u003d\"text/css\" /\u003e\n\u003cscript\u003e\n window.katexOptions \u003d {\n delimiters: [\n {left: \u0027$$$$$$\u0027, right: \u0027$$$$$$\u0027, display: true},\n {left: \u0027$$$\u0027, right: \u0027$$$\u0027, display: false},\n {left: \u0027$$\u0027, right: \u0027$$\u0027, display: true},\n {left: \u0027$\u0027, right: \u0027$\u0027, display: false}\n ]\n };\n\u003c/script\u003e\n","sections":[{"title":"","value":{"format":"HTML","content":"\u003cp\u003e在一个辛苦工作的一周之后,Polycarp 更喜欢玩乐。Polycarp 最喜欢的娱乐活动是画蛇。他拿起一张大小为 $$$n \\times m$$$ 的矩形格纸(其中 $$$n$$$ 是行数,$$$m$$$ 是列数),然后开始在格子里画蛇。\u003c/p\u003e\u003cp\u003ePolycarp 用小写拉丁字母来画蛇。他总是用符号 \u0027\u003cspan class\u003d\"tex-font-style-tt\"\u003ea\u003c/span\u003e\u0027 画第一条蛇,用符号 \u0027\u003cspan class\u003d\"tex-font-style-tt\"\u003eb\u003c/span\u003e\u0027 画第二条蛇,用符号 \u0027\u003cspan class\u003d\"tex-font-style-tt\"\u003ec\u003c/span\u003e\u0027 画第三条蛇,依此类推。所有的蛇都有自己独特的符号。拉丁字母表中只有 $$$26$$$ 个字母,Polycarp 非常累,他不想发明新的符号,所以画出的蛇的总数不超过 $$$26$$$。\u003c/p\u003e\u003cp\u003e由于一周结束时 Polycarp 非常累,他画的蛇都是直线,没有拐弯。因此每条蛇要么是水平的,要么是垂直的。任何蛇的宽度都等于 $$$1$$$,也就是每条蛇的大小要么是 $$$1 \\times l$$$,要么是 $$$l \\times 1$$$,其中 $$$l$$$ 是蛇的长度。注意蛇不能拐弯。\u003c/p\u003e\u003cp\u003e当 Polycarp 画一条新的蛇时,他可以使用已经占用的格子来画蛇。在这种情况下,他会在原有的值上面“重画”蛇,并覆盖之前的值。\u003c/p\u003e\u003cp\u003e最近,当 Polycarp 在工作时,他发现了一张写满拉丁字母的格纸。他想知道是否可以通过按照上述规则画一些蛇来从一张空白的格纸得到这张格纸。如果可能,他想知道如何画蛇。\u003c/p\u003e"}},{"title":"输入","value":{"format":"HTML","content":"\u003cp\u003e输入的第一行包含一个整数 $$$t$$$ ($$$1 \\le t \\le 10^5$$$) — 要解决的测试用例数。然后是 $$$t$$$ 个测试用例。\u003c/p\u003e\u003cp\u003e测试用例描述的第一行包含两个整数 $$$n$$$, $$$m$$$ ($$$1 \\le n,m \\le 2000$$$) — 格纸的长度和宽度。\u003c/p\u003e\u003cp\u003e接下来的 $$$n$$$ 行测试用例描述包含 $$$m$$$ 个符号,负责相应格子上的内容。它可以是小写拉丁字母或点号(\u0027\u003cspan class\u003d\"tex-font-style-tt\"\u003e.\u003c/span\u003e\u0027),表示空格。\u003c/p\u003e\u003cp\u003e保证一个测试中所有格纸的总面积不超过 $$$4\\cdot10^6$$$。\u003c/p\u003e"}},{"title":"输出","value":{"format":"HTML","content":"\u003cp\u003e打印每个测试用例的答案。\u003c/p\u003e\u003cp\u003e对于一个测试用例的输出,如果可以画蛇从输入得到一张格纸,则在输出的第一行打印 \u003cspan class\u003d\"tex-font-style-tt\"\u003eYES\u003c/span\u003e。如果不可能,则打印 \u003cspan class\u003d\"tex-font-style-tt\"\u003eNO\u003c/span\u003e。\u003c/p\u003e\u003cp\u003e如果对这个问题的答案是肯定的,那么以以下格式打印画蛇的方法。在下一行打印一个整数 $$$k$$$ ($$$0 \\le k \\le 26$$$) — 蛇的数量。然后打印 $$$k$$$ 行,每行打印四个整数 $$$r_{1,i}$$$, $$$c_{1,i}$$$, $$$r_{2,i}$$$ 和 $$$c_{2,i}$$$ — 第 $$$i$$$ 条蛇的极端格子的坐标($$$1 \\le r_{1,i}, r_{2,i} \\le n$$$, $$$1 \\le c_{1,i}, c_{2,i} \\le m$$$)。蛇应按照它们的画出顺序打印。如果有多个解决方案,可以打印任何一个。\u003c/p\u003e\u003cp\u003e注意,Polycarp 从一张空白的格纸开始画蛇。\u003c/p\u003e"}},{"title":"示例","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e1\n5 6\n...a..\n..bbb.\n...a..\n.cccc.\n...a..\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003eYES\n3\n1 4 5 4\n2 3 2 5\n4 2 4 5\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e3\n3 3\n...\n...\n...\n4 4\n..c.\nadda\nbbcb\n....\n3 5\n..b..\naaaaa\n..b..\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003eYES\n0\nYES\n4\n2 1 2 4\n3 1 3 4\n1 3 3 3\n2 2 2 3\nNO\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e2\n3 3\n...\n.a.\n...\n2 2\nbb\ncc\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003eYES\n1\n2 2 2 2\nYES\n3\n1 1 1 2\n1 1 1 2\n2 1 2 2\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}}]}