お箸は 2 本 1 セット(1 膳)で用いるものである。しかしあるとき一人暮らしの大学生であるいあづ君は箸立てに入っているお箸が奇数本であることに気がついた。これは明らかにおかしい。いつの間にか何本か無くしてしまったのである。 困ったいあづ君は、今後このようなことが無いように箸の本数を毎日記録することにした。
ところが、いあづ君が決めた記録の方法は少し変わっている。 それは、まずM 個の自然数 A1, ... , AM を決めた後、 箸の本数をそれらで割った余りを毎日記録するというものである。 例えばある日に残っている箸の本数が T のとき、 その日の記録として T % A1 , ... , T % AM を付ける。 ただ、たまにいくつか記録し忘れたり、間違った記録を付けたりすることもあるようだ。 (x % y は x を y で割った余りである。)
ここでいあづ君は大事なことに気づいた。 これだと最終日に何本残っているか 1 つに決まらない!
ポジティブないあづ君は、 D 日分の記録をもとに、 D 日目の記録をつけた直後に残っている箸の本数の最大値を求めるプログラムを書くことにした。
入力は次のような形式で与えられる.
N M D
A1 A2 ... AM
R11 R12 ... R1M
R21 R22 ... R2M
...
RD1 R12 ... RDM
D 日目に残っていると考えられる箸の数の最大値を 1 行で出力せよ。 記録に明らかに間違いがある場合は -1 を出力せよ。
3 3 2 2 3 4 1 0 3 0 2 2
2
0 日目に 3 本あった箸は、 1 日目に 3 本、 2 日目に 2 本になったと考えられる。
3 3 2 2 3 4 0 0 0 0 0 1
-1
0 日目に 3 本あった箸は、 1 日目に 0 本になったと考えられる。ところが 2 日目の 4 で割った余りが1になっている。
3 3 2 2 3 4 1 0 3 -1 -1 -1
3
0 日目に 3 本あった箸は、 1 日目も 3 本あったと考えられる。2 日目は記録し忘れてしまった。