#PD018D. 三色 (tricolor)

三色 (tricolor)

第4题:三色 (tricolor)

  • 输入:tricolor.in
  • 输出:tricolor.out
  • 时间限制:2 s
  • 内存限制:256 MB

题目描述

给定一个 n×mn\times m 的网格。

你需要在每个格子中填入 0,1,20,1,2 中的一个整数。

如果任意两个共享一条边的格子中填入的整数都不同,则称这种填法是好的

请你求出好的填法数量。

由于答案可能很大,请输出答案对 998244353998244353 取模后的结果。

输入格式

一行两个整数 n,mn,m

输出格式

输出一个整数,表示好的填法数量对 998244353998244353 取模后的结果。

输入输出样例 #1

输入 #1

2 2

输出 #1

18

说明/提示

【样例1说明】

网格有 2222 列。

第一列共有 66 种合法填法:

01, 02, 10, 12, 21, 2001,\ 02,\ 10,\ 12,\ 21,\ 20

对于第一列的任意一种合法填法,第二列恰好有 33 种合法填法。

因此答案为:6×3=186\times 3=18

数据范围

对于所有测试数据:1n<10,1m<9982443531\le n<10, 1\le m<998244353

答案对 998244353998244353 取模。

本题采用子任务计分。

子任务 分值 特殊限制
1 1010 n3, m5n\le 3,\ m\le 5
2 2020 n9, m50n\le 9,\ m\le 50
3 4040 n6n\le 6
4 3030 无特殊限制