#H1004. 连接

连接

题目背景

小明学习了一些魔法。

题目描述

小明有一个棋盘,棋盘有 nn 行,每行 nn 个格子,一共 n2n^2 个格子。每个格子有一个颜色,颜色一共 kk 种,按 1k1\sim k 编号。

小明还会 mm 种魔法,第 ii 种魔法有 ui,viu_i,v_i 两个参数,表示小明可以选取一个颜色为 uiu_i 的格子,并把它的颜色变为 viv_i

小明可以发动任意种类的魔法任意次,他想让棋盘的左上角和右下角之间存在一条由单一颜色组成的路径。但发动魔法需要消耗精力,因此他希望你帮忙求出他最少需要发动次魔法才能达到目标,或判断无解。

只能向右向下进行行走。

输入格式

第一行三个正整数 n,m,kn,m,k,分别表示棋盘大小,魔法种类数,颜色种类数。

接下来 nn 行从上到下地描述了棋盘的行,每行有 nn 个正整数,从左到右地描述了棋盘这一行 nn 个格子的颜色。

接下来 mm 行,每行两个整数 u,vu,v,表示小明会一种把格子从 uu 颜色变成 vv 颜色的魔法。

输出格式

一行一个整数,表示最少的发动魔法次数。如果无法达到目标,输出 1-1

2 2 2
1 2
2 1
1 2
2 1
1

样例1解释

把格子 (1,2)(1,2) 或者格子 (2,1)(2,1) 从颜色 22 改成颜色 11 即可,共使用 11 次魔法。

3 2 3
1 3 3
2 1 3
3 3 2
2 3
1 2
3

样例2解释

先使用一次魔法将格子 (3,3)(3,3) 从颜色 22 改成颜色 33,再使用两次魔法将格子 (1,1)(1,1) 从颜色 11 改成颜色 22,从颜色 22 改为颜色 33。此时路径 (1,1)(1,2)(1,3)(2,3)(3,3)(1,1)\rightarrow (1,2)\rightarrow (1,3)\rightarrow (2,3)\rightarrow (3,3) 均为颜色 33,共使用 33 次魔法。

数据范围

对于 100%100\% 的数据,保证 1n500,1m1000,1k3001\le n\le 500,1\le m\le 1000,1\le k\le 300。保证每一种魔法都满足 uvu\neq v,保证不存在两种一模一样的魔法。

测试点编号 nn\le mm\le kk\le
121\sim 2 33 22
343\sim 4 1010 55
575\sim 7 5050 2020
8108\sim 10 500500 10001000 300300

大样例

大样例下载