Linköping 拥有一个相当复杂的输水系统。在 Linköping 周围有几口水井用于抽取水源。水随后通过管道输送到城市中的其他位置。每根管道都是一条从其中一口水井通往城市中某个位置的直线渠道。
Ogar93 拍摄的塌陷坑照片,来自 Wikimedia Commons
所有管道都埋在地下相同的深度。因此,每当两条管道交叉时,它们就会形成一个交点。幸运的是,管道系统的建造方式使得每个这样的交点恰好由两条管道相交而成。水井不计入交点。每口水井可以引出任意数量的管道(包括零条或多条)。
这些交点带来了一个问题,因为污垢(石灰和其他“残留物”的混合物)往往会堆积在那里。这些污垢会导致管道退化并坍塌,从而形成巨大的塌陷坑。这种塌陷坑对 Linköping 的学生有一种迷人的影响,导致他们荒废学业,无法接受教育,从长远来看,这不仅会导致管道系统的崩溃,还会导致整个社会结构的瓦解。因此,必须定期清理这些管道。负责 Linköping 输水管道的北欧水资源开采与再分配公司 (NWERC) 拥有充足的机器人车队来执行这项任务。机器人可以从管道起始的水井处放入管道。机器人随后会沿着管道一直走到尽头,并清理沿途所有的交点。到达终点后,机器人会掉头返回起始的水井。为了防止机器人碰撞,政府法规规定,每当两条管道相交时,其中最多只能有一根管道包含机器人。
由于整个供水系统在清理时必须关闭(另一项政府法规),NWERC 希望通过使用一批同时启动的清洁机器人来快速完成清理工作。
你的任务是验证这是否可行——即我们是否可以同时将机器人放入管道的某个子集中,使得机器人能够清理所有交点,且不会有两台机器人发生碰撞的风险。
输入格式
输入包含:
- 一行包含两个整数 $w$ ($1 \le w \le 1\,000$),即水井的数量,以及 $p$ ($1 \le p \le 1\,000$),即管道的数量;
- $w$ 行,第 $i$ 行包含两个整数 $x_i$ 和 $y_i$ ($-10\,000 \le x, y \le 10\,000$),表示第 $i$ 号水井的位置(水井编号从 $1$ 到 $w$);
- $p$ 行,每行包含三个整数 $s$ ($1 \le s \le w$),表示管道起始的水井,以及 $x$ 和 $y$ ($-10\,000 \le x, y \le 10\,000$),表示管道结束的位置。
每根管道恰好包含一口水井,即它起始的那一口。任何由超过两条管道共享的点都必然是一口水井。任意两条管道最多共享一个公共点。两条管道的公共点可能是其中一根或两根管道的端点。所有管道的长度均为正值。
输出格式
如果能够按照上述描述清理所有交点,输出 “possible”。否则,输出 “impossible”。
样例
输入格式 1
3 3 0 0 0 2 2 0 1 2 3 2 2 2 3 0 3
输出格式 1
impossible
输入格式 2
2 3 0 0 0 10 1 5 15 1 2 15 2 10 10
输出格式 2
possible