Codeforces Round 315 (Div. 1)
D
Sign Posts
Codeforces
2800
原题
← CE →
翻译中…

One Khanate had a lot of roads and very little wood. Riding along the roads was inconvenient, because the roads did not have road signs indicating the direction to important cities.

翻译中…

The Han decided that it's time to fix the issue, and ordered to put signs on every road. The Minister of Transport has to do that, but he has only $*k*$ signs. Help the minister to solve his problem, otherwise the poor guy can lose not only his position, but also his head.

翻译中…

More formally, every road in the Khanate is a line on the $*Oxy*$ plane, given by an equation of the form $*Ax* + *By* + *C* = 0$ ($*A*$ and $*B*$ are not equal to 0 at the same time). You are required to determine whether you can put signs in at most $*k*$ points so that each road had at least one sign installed.

翻译中…

Input

翻译中…

The input starts with two positive integers $*n*$, $*k*$ ($1 ≤ *n* ≤ 10^{5}, 1 ≤ *k* ≤ 5$)

翻译中…

Next $*n*$ lines contain three integers each, $*A*_{*i*}, *B*_{*i*}, *C*_{*i*}$, the coefficients of the equation that determines the road ($|*A*_{*i*}|, |*B*_{*i*}|, |*C*_{*i*}| ≤ 10^{5}$, $*A*_{*i*}^{2} + *B*_{*i*}^{2} ≠ 0$).

翻译中…

It is guaranteed that no two roads coincide.

翻译中…

Output

翻译中…

If there is no solution, print "NO" in the single line (without the quotes).

翻译中…

Otherwise, print in the first line "YES" (without the quotes).

翻译中…

In the second line print a single number $*m*$ ($*m* ≤ *k*$) — the number of used signs. In the next $*m*$ lines print the descriptions of their locations.

翻译中…

Description of a location of one sign is two integers $*v*, *u*$. If $*u*$ and $*v*$ are two distinct integers between $1$ and $*n*$, we assume that sign is at the point of intersection of roads number $*v*$ and $*u*$. If $*u* =  - 1$, and $*v*$ is an integer between $1$ and $*n*$, then the sign is on the road number $*v*$ in the point not lying on any other road. In any other case the description of a sign will be assumed invalid and your answer will be considered incorrect. In case if $*v* = *u*$, or if $*v*$ and $*u*$ are the numbers of two non-intersecting roads, your answer will also be considered incorrect.

翻译中…

The roads are numbered starting from $1$ in the order in which they follow in the input.

翻译中…

Note

翻译中…

Note that you do not have to minimize $*m*$, but it shouldn't be more than $*k*$.

翻译中…

In the first test all three roads intersect at point (0,0).

翻译中…

In the second test all three roads form a triangle and there is no way to place one sign so that it would stand on all three roads at once.

翻译中…

样例

Input #1
3 1
1 0 0
0 -1 0
7 -93 0
Output #1
YES
1
1 2
InputCopy OutputCopy
Input #2
3 1
1 0 0
0 1 0
1 1 3
Output #2
NO
InputCopy OutputCopy
Input #3
2 3
3 4 5
5 6 7
Output #3
YES
2
1 -1
2 -1
InputCopy OutputCopy
题目信息
题号
568D
时间限制
2 s
内存限制
256 MB
标签
暴力
计算几何
数学

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。