#P15991. [2024国家队集训中科院站]小H的棋盘

[2024国家队集训中科院站]小H的棋盘

题目描述

小 H 想要装饰他的棋盘。

小 H 的棋盘有 n×mn\times m 个格子,构成一个 nnmm 列的网格。行从上到下编号为 11nn,列从左到右编号为 11mm。围成这些格子的线段的交点称为格点,一共有 (n+1)×(m+1)(n+1)\times(m+1) 个格点。

下图展示了一个 2×32\times3 的棋盘,其中黑点表示格点,每个格子的坐标标在其中心处。

小 H 的棋盘比较特殊:除了连接相邻格点的横向、纵向线段之外,每个格子内还恰好有一条连接两个格点的对角线。每个格子的对角线有两种可能:

  • 从左上角连到右下角,称为 N 型
  • 从右上角连到左下角,称为 Z 型

我们可以用一个长度为 nmnm、只包含字符 NZ 的字符串来表示棋盘中所有格子的类型。具体地,先按从左到右的顺序连接第一行各格子的类型,再连接第二行,依此类推直到最后一行。这样得到的字符串称为这个棋盘的特征串

因为想要装饰棋盘,小 H 希望给每个格点染上三种颜色之一。小 H 认为一种染色方案是美丽的,当且仅当任意两个被线段直接连接的格点颜色都不同。

下图展示了一种美丽的染色方案,它对应的特征串为 NNNZZZ

现在,小 H 已经确定了一些格子的类型,并写下了对应的字符串 SS。字符串 SS 只包含字符 NZ?,其中 ? 表示该格子的类型尚未确定。

请你确定所有未确定格子的类型,使得最终棋盘至少存在一种美丽的染色方案。若存在方案,请输出字典序最小的特征串;若不存在方案,请输出 -1

输入格式

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

第二行包含一个长度为 nmnm 的字符串 SS,其中每个字符只可能是 NZ?

输出格式

如果存在合法方案,输出一行一个字符串,表示字典序最小的特征串。

如果不存在合法方案,输出一行 -1

样例 1

输入

2 3
???ZZZ

输出

NNNZZZ

样例 2

输入

2 2
NZZZ

输出

-1

数据范围与子任务

对于所有数据,满足:

1n,m10001\le n,m\le 1000
子任务 分值 限制
1 10 SS 中不包含 ?
2 n,m4n,m\le 4
3 40 n,m50n,m\le 50
4 无额外限制