#CF1137C. Museums Tour

Museums Tour

markdown

C. 博物馆之旅

时间限制:每个测试点 44
内存限制:每个测试点 512512 MB
输入:标准输入
输出:标准输出

题目描述

在这个国家中,有 nn 座城市,由 mm 条单向道路连接。尽管这个国家看似普通,但有两个有趣的事实:首先,这里的一周有 dd 天;其次,每座城市恰好有一座博物馆。

旅行社“开放博物馆”正在为对博物馆感兴趣的游客开发一条新路线。旅行社的员工知道每座博物馆在每周的哪些天开放。旅行必须从首都——编号为 11 的城市开始,并且旅行的第一天必须是每周的第一天。每天,游客会身处某座城市,如果当天该城市的博物馆开放,则可以参观;在一天结束时,旅行要么结束,要么游客通过一条单向道路前往另一座城市。该国的道路系统设计为:每次通过道路移动需要花费一夜的时间,并且所有道路都是单向的。旅行中允许多次访问同一座城市。

你需要设计一条旅行路线,使得能够参观到的不同博物馆数量尽可能多。

输入格式

第一行包含三个整数 nnmmdd1n1000001 \le n \le 1000001m1000001 \le m \le 1000001d501 \le d \le 50),分别表示城市数量、道路数量和一周的天数。

接下来的 mm 行,每行包含两个整数 uiu_iviv_i1ui,vin1 \le u_i, v_i \le nuiviu_i \neq v_i),表示一条从城市 uiu_i 到城市 viv_i 的单向道路。

接下来的 nn 行描述了博物馆的开放时间表。第 ii 行对应城市 ii 的博物馆。每行是一个长度为 dd 的字符串,仅包含字符 01。如果该字符串的第 jj 个字符为 1,表示该博物馆在每周的第 jj 天开放;否则为 0

数据保证对于任意一对城市 (u,v)(u, v),最多存在一条从 uuvv 的道路。

输出格式

输出一个整数——从城市 11 出发,在每周的第一天开始旅行,能够参观到的不同博物馆的最大数量。

样例

输入样例 1

4 5 3
3 1
1 2
2 4
4 1
2 3
011
110
111
001

输出样例 1

3

输入样例 2

3 3 7
1 2
1 3
2 3
1111111
0000000
0111111

输出样例 2

2

注释

第一个样例解释
最多可以参观 33 个不同的博物馆。一种可行的路线如下:

  • 11 天:每周的第 11 天,游客在城市 11。该博物馆关闭。当晚,游客前往城市 33
  • 22 天:每周的第 22 天,游客在城市 33。该博物馆开放,游客参观。当晚,游客前往城市 11
  • 33 天:每周的第 33 天,游客在城市 11。该博物馆开放,游客参观。当晚,游客前往城市 22
  • 44 天:每周的第 11 天,游客在城市 22。该博物馆关闭。当晚,游客前往城市 44
  • 55 天:每周的第 22 天,游客在城市 44。该博物馆开放,但游客已经参观过。当晚,游客前往城市 11
  • 66 天:每周的第 33 天,游客在城市 11。该博物馆开放,游客参观。之后旅行结束。

第二个样例解释
最多可以参观 22 个不同的博物馆。一种可行的路线如下:

  • 11 天:每周的第 11 天,游客在城市 11。该博物馆开放,游客参观。当晚,游客前往城市 22
  • 22 天:每周的第 22 天,游客在城市 22。该博物馆关闭。当晚,游客前往城市 33
  • 33 天:每周的第 33 天,游客在城市 33。该博物馆开放,游客参观。之后旅行结束。