尽管我们认为行星际探测器是非常先进的技术产物,但它们的信息系统却相当古老。你可能会认为它们拥有一定量的连续主存,并且可以在任何方便的地方存储数据,但遗憾的是事实并非如此。探测器的主存被组织成若干个 FIFO(先进先出)队列。在这种队列中,数据必须按照添加的顺序被取出。
The Juno spacecraft in front of Jupiter. Graphic by NASA
探测器有多个传感器,每个传感器都连接到一个队列。每当传感器完成记录时,它会将生成的数据附加到其对应的队列中。只有当队列有足够的剩余空间来容纳所有数据时,传感器才能将数据写入队列;否则,数据将会丢失。
为了将数据从探测器传输到地球(这一过程称为下行链路传输),卫星与地球之间的路径不能被任何物体(例如像木星这样的行星)阻挡,并且天线必须正确定位。在每次下行链路传输机会中,可以从多个队列中取出数据并传回地球。在一次下行链路传输机会中可以传输的数据总量取决于下行链路传输机会的时长以及与地球的距离。传感器在下行链路传输机会期间不会收集数据,因为所有可用的电力都用于发射机。
对于科学家来说,最重要的事情是不要丢失传感器记录的任何数据。特别是,所有队列在最后一次下行链路传输机会后必须为空。科学家们要求你编写一个程序,以确定在给定的时间范围内是否可以将所有数据传输到地球。
输入格式
- 第一行包含三个正整数 $n, q, s$ ($1 \le n, q \le 30, 1 \le s \le 100$),分别表示下行链路窗口的数量、FIFO 队列的数量和传感器的数量。
- 第二行包含 $s$ 个整数 $q_1 \dots q_s$ ($1 \le q_i \le q$ 对于每个 $i$),确定每个传感器将其数据馈送到哪个队列。
- 第三行包含 $q$ 个整数 $c_1 \dots c_q$ ($1 \le c_i \le 10^6$ 对于每个 $i$),确定每个队列的大小(以兆字节为单位)。
- 接下来 $n$ 行,每行描述一个下行链路窗口。每行包含 $s + 1$ 个非负整数。
- 第一个整数 $d$ ($1 \le d \le 10^6$) 表示在该窗口期间可以传输到地球的兆字节数。
- 接下来的 $s$ 个数字 $a_1 \dots a_s$ ($0 \le a_i \le 10^6$ 对于每个 $i$) 描述了在上次下行链路窗口之后、本次下行链路窗口之前,每个传感器生成的数据量(以兆字节为单位)。
在下行链路窗口期间永远不会有新数据产生。
输出格式
如果可以将所有数据传输到地球,则输出 “possible”,否则输出 “impossible”。
样例
输入格式 1
2 2 2 1 2 3 3 5 2 2 5 2 2
输出格式 1
possible
输入格式 2
2 2 2 1 2 3 3 1 2 2 5 2 2
输出格式 2
impossible