Problem1836--【NOIP2020-T4】微信步数

1836: 【NOIP2020-T4】微信步数

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 512 MB

Submit

Description

    小C喜欢跑步,并且非常喜欢在微信步数排行榜上刷榜,为此他制定了一个刷微信步数的计划。
    他来到了一处空旷的场地,处于该场地中的人可以用k维整数坐标(a1,a2,···,ak)来表示其位置。场地有大小限制,第i维的大小为wi,因此处于场地中的人其坐标应满足1≤ai≤wi(1≤i≤k)。
    小C打算在接下来的P=w1×w2×···×wk天中,每天从场地中一个新的位置出发,开始他的刷步数计划(话句话说,他将会从场地中每个位置都出发一次进行计划)。
    他的计划非常简单,每天按照事先规定好的路线行进,每天的路线由n步移动构成,每一步可以用ci与di表示:若他当前位于(a1,a2,···,aci,···,ak),则这一步他将会走到(a1,a2,···,aci+di,···,ak),其中1≤ci≤k,di∈{−1,1}。小C将会不断重复这个路线,直到他走出了场地的范围才结束一天的计划。(即走完第n步后,若小C还在场内,他将回到第1步从头再走一遍)。
    小C对自己的速度非常有自信,所以他并不在意具体耗费的时间,他只想知道P天之后,他一共刷出了多少步微信步数。请你帮他算一算。

Input

    第一行两个用单个空格分隔的整数n,k。分别表示路线步数与场地维数。
    接下来一行k个用单个空格分隔的整数wi,表示场地大小。
    接下来n行每行两个用单个空格分隔的整数ci,di,依次表示每一步的方向,具体意义见题目描述。

Output

    仅一行一个整数表示答案。答案可能很大,你只需要输出其对109+7取模后的值。
    若小C的计划会使得他在某一天在场地中永远走不出来,则输出一行一个整数-1。

Sample Input Copy

3 2
3 3
1 1
2 -1
1 1

Sample Output Copy

21

HINT

【样例1解释】
    从(1,1)出发将走2步,从(1,2)出发将走4步,从(1,3)出发将走4步。
    从(2,1)出发将走2步,从(2,2)出发将走3步,从(2,3)出发将走3步。
    从(3,1)出发将走1步,从(3,2)出发将走1步,从(3,3)出发将走1步。
    共计21步。

Source/Category

NOIP