Type: Default 1000ms 256MiB

矩阵

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

Background

有一天,世界上各个大型网络公司都遭到了大型 DDOS 攻击,一个自称 fumo 的组织宣称发动了这次攻击。于是,世界上很多大型网络公司都陷入恐慌。

Description

你是一名 AbstergoAbstergo 公司的员工,并负责公司的网络安全。

有天,你收到了一封没有署名的文件。 AbstergoAbstergo 公司的 BossBoss 有预感,这封文件可能携带某种不知名的高级病毒。你需要对文件上的 N×NN\times N 的正数矩阵进行 TT 次操作,来确保开启文件后不会遭到病毒攻击。

对于每次操作,可能是以下的几种形式之一:

  1. 求出矩阵的 kk 次幂。

  2. 将现矩阵乘另给出的一个 N×NN\times N 的矩阵。

  3. 输出现矩阵的 第 i,ji,j 项。

如果你是新人,你可能要先掌握一些线性代数相关知识

如果你成功破解文件,Boss WykBoss\ Wyk 将会给你升值加薪的奖励。

注意,邪恶的 fumofumo 为了不让别人轻易破解,矩阵里面可能存在负数,你需要将其先转化为正数再进行计算。 由于计算过程中出现的数可能很大,你只需要输出对 109+710^9+7 取模后的结果。

Format

Input

第一行包括两个整数 TTNN ,代表 TT 次操作和矩阵大小 NN (1<N<1000)(1<N<1000)

接下来 NN 行,每行 NN 个整数,表示给定的矩阵。

再接下来 TT 个操作,保证每次操作第一个数 op[1,3]op\in[1,3] ,代表上述的三种操作。

op=1op=1 ,则接着输入 kk ,代表求现矩阵的 kk 次幂。

op=2op=2 ,则接下来 NN 行,每行 NN 个整数,表示要乘的矩阵。

op=3op=3 ,则接着输入 i,ji,j ,表示输出矩阵的第 i,ji,j 的项。

Output

对于每个 op=3op=3 ,输出一行数表示矩阵的第 i,ji,j 项。

接下来 NN 行,每行 NN 个整数,表示最后求出的矩阵。

Samples

1 2
1 1
1 1
1 2
2 2
2 2
2 3
1 2 8
2 5 6
5 1 2
3 2 2
1 2
5
45 20 36
42 35 58
17 17 50

Limitation

1s, 1024KiB

SDNU_ACM_ICPC_2025秋季结训赛

Not Attended
Status
Done
Rule
ACM/ICPC
Problem
12
Start at
2025-12-28 9:00
End at
2025-12-28 14:00
Duration
5 hour(s)
Host
Partic.
37