Codeforces Round #416 (Div. 2) has been moved to start on 27.05.2017 09:35 (UTC).
×

Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ACM-ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

No tag edit access

H. Summer Dichotomy

time limit per test

2 secondsmemory limit per test

256 megabytesinput

standard inputoutput

standard output*T* students applied into the ZPP class of Summer Irrelevant School. The organizing committee of the school may enroll any number of them, but at least *t* students must be enrolled. The enrolled students should be divided into two groups in any manner (it is possible that one of the groups will be empty!)

During a shift the students from the ZPP grade are tutored by *n* teachers. Due to the nature of the educational process, each of the teachers should be assigned to exactly one of two groups (it is possible that no teacher will be assigned to some of the groups!). The *i*-th teacher is willing to work in a group as long as the group will have at least *l*_{i} and at most *r*_{i} students (otherwise it would be either too boring or too hard). Besides, some pairs of the teachers don't like each other other and therefore can not work in the same group; in total there are *m* pairs of conflicting teachers.

You, as the head teacher of Summer Irrelevant School, have got a difficult task: to determine how many students to enroll in each of the groups and in which group each teacher will teach.

Input

The first line contains two space-separated integers, *t* and *T* (1 ≤ *t* ≤ *T* ≤ 10^{9}).

The second line contains two space-separated integers *n* and *m* (1 ≤ *n* ≤ 10^{5}, 0 ≤ *m* ≤ 10^{5}).

The *i*-th of the next *n* lines contain integers *l*_{i} and *r*_{i} (0 ≤ *l*_{i} ≤ *r*_{i} ≤ 10^{9}).

The next *m* lines describe the pairs of conflicting teachers. Each of these lines contain two space-separated integers — the indices of teachers in the pair. The teachers are indexed starting from one. It is guaranteed that no teacher has a conflict with himself and no pair of conflicting teachers occurs in the list more than once.

Output

If the distribution is possible, print in the first line a single word 'POSSIBLE' (without the quotes). In the second line print two space-separated integers *n*_{1} and *n*_{2} — the number of students in the first and second group, correspondingly, the contstraint *t* ≤ *n*_{1} + *n*_{2} ≤ *T* should be met. In the third line print *n* characters, the *i*-th of which should be 1 or 2, if the *i*-th teacher should be assigned to the first or second group, correspondingly. If there are multiple possible distributions of students and teachers in groups, you can print any of them.

If the sought distribution doesn't exist, print a single word 'IMPOSSIBLE' (without the quotes).

Examples

Input

10 20

3 0

3 6

4 9

16 25

Output

POSSIBLE

4 16

112

Input

1 10

3 3

0 10

0 10

0 10

1 2

1 3

2 3

Output

IMPOSSIBLE

Codeforces (c) Copyright 2010-2017 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: May/26/2017 12:20:53 (c2).

Desktop version, switch to mobile version.
User lists

Name |
---|