#P16179. [Ncpc2020]Language Survey语言调查

[Ncpc2020]Language Survey语言调查

题目描述

在 Gridnavia,有三种语言:Arwegian、Banish 和 Cwedish。

Gridnavia 是一个 n×mn\times m 的网格。每个格子中至少使用一种语言。已知每一种语言都在一个非空连通的格子集合中使用。

这里的连通指:在同一种语言覆盖的格子中,任意两个格子之间都可以通过上下左右相邻的格子移动到达。

你进行了一次调查,想知道每个格子里使用哪些语言。调查问题原本应该让每个格子填写所使用的语言集合,但由于印刷错误,选项没有印出来。于是每个格子只能回答:

  • 1:这里恰好使用一种语言;
  • 2:这里使用不止一种语言,即至少两种语言。

现在你只知道每个格子是 1 还是 2。请你找出任意一种三种语言的分布方式,使其与调查结果一致,并且三种语言各自覆盖的区域都非空且连通。

输入格式

第一行包含两个整数 n,mn,m

接下来 nn 行,每行一个长度为 mm 的字符串,仅由字符 12 组成。第 ii 行第 jj 个字符表示格子 (i,j)(i,j) 的调查结果:

  • 1:该格子恰好使用一种语言;
  • 2:该格子至少使用两种语言。

输出格式

如果存在合法分布,输出三份网格,分别表示三种语言的覆盖情况。

第一份网格由字符 A. 组成,A 表示该格子使用 Arwegian,. 表示不使用。

第二份网格由字符 B. 组成,表示 Banish 的覆盖情况。

第三份网格由字符 C. 组成,表示 Cwedish 的覆盖情况。

每份网格都应有 nn 行,每行 mm 个字符。为了可读性,可以在三份网格之间输出空行,但不是必须的。

输出需要满足:

  1. 每个格子至少属于一种语言;
  2. 输入为 1 的格子恰好属于一种语言;
  3. 输入为 2 的格子至少属于两种语言;
  4. 三种语言的格子集合都非空;
  5. 三种语言的格子集合都连通。

如果不存在合法分布,输出:

impossible

若有多种方案,输出任意一种。

数据范围

1n,m2001 \le n,m \le 200

样例 #1

输入

3 4
2211
1112
1112

输出

AAAA
...A
....

BB..
BBBB
...B

....
...C
CCCC

样例 #2

输入

1 1
1

输出

impossible