#P1005F. Berland and the Shortest Paths

    ID: 5270 Type: RemoteJudge 5000ms 256MiB Tried: 0 Accepted: 0 Difficulty: 7 Uploaded By: Tags>brute forcedfs and similargraphsshortest paths*2100

Berland and the Shortest Paths

Description

There are nn cities in Berland. Some pairs of cities are connected by roads. All roads are bidirectional. Each road connects two different cities. There is at most one road between a pair of cities. The cities are numbered from 11 to nn.

It is known that, from the capital (the city with the number 11), you can reach any other city by moving along the roads.

The President of Berland plans to improve the country's road network. The budget is enough to repair exactly n1n-1 roads. The President plans to choose a set of n1n-1 roads such that:

  • it is possible to travel from the capital to any other city along the n1n-1 chosen roads,
  • if did_i is the number of roads needed to travel from the capital to city ii, moving only along the n1n-1 chosen roads, then d1+d2++dnd_1 + d_2 + \dots + d_n is minimized (i.e. as minimal as possible).

In other words, the set of n1n-1 roads should preserve the connectivity of the country, and the sum of distances from city 11 to all cities should be minimized (where you can only use the n1n-1 chosen roads).

The president instructed the ministry to prepare kk possible options to choose n1n-1 roads so that both conditions above are met.

Write a program that will find kk possible ways to choose roads for repair. If there are fewer than kk ways, then the program should output all possible valid ways to choose roads.

The first line of the input contains integers nn, mm and kk (2n2105,n1m2105,1k21052 \le n \le 2\cdot10^5, n-1 \le m \le 2\cdot10^5, 1 \le k \le 2\cdot10^5), where nn is the number of cities in the country, mm is the number of roads and kk is the number of options to choose a set of roads for repair. It is guaranteed that mk106m \cdot k \le 10^6.

The following mm lines describe the roads, one road per line. Each line contains two integers aia_i, bib_i (1ai,bin1 \le a_i, b_i \le n, aibia_i \ne b_i) — the numbers of the cities that the ii-th road connects. There is at most one road between a pair of cities. The given set of roads is such that you can reach any city from the capital.

Print tt (1tk1 \le t \le k) — the number of ways to choose a set of roads for repair. Recall that you need to find kk different options; if there are fewer than kk of them, then you need to find all possible different valid options.

In the following tt lines, print the options, one per line. Print an option as a string of mm characters where the jj-th character is equal to '1' if the jj-th road is included in the option, and is equal to '0' if the road is not included. The roads should be numbered according to their order in the input. The options can be printed in any order. All the tt lines should be different.

Since it is guaranteed that mk106m \cdot k \le 10^6, the total length of all the tt lines will not exceed 10610^6.

If there are several answers, output any of them.

Input

The first line of the input contains integers nn, mm and kk (2n2105,n1m2105,1k21052 \le n \le 2\cdot10^5, n-1 \le m \le 2\cdot10^5, 1 \le k \le 2\cdot10^5), where nn is the number of cities in the country, mm is the number of roads and kk is the number of options to choose a set of roads for repair. It is guaranteed that mk106m \cdot k \le 10^6.

The following mm lines describe the roads, one road per line. Each line contains two integers aia_i, bib_i (1ai,bin1 \le a_i, b_i \le n, aibia_i \ne b_i) — the numbers of the cities that the ii-th road connects. There is at most one road between a pair of cities. The given set of roads is such that you can reach any city from the capital.

Output

Print tt (1tk1 \le t \le k) — the number of ways to choose a set of roads for repair. Recall that you need to find kk different options; if there are fewer than kk of them, then you need to find all possible different valid options.

In the following tt lines, print the options, one per line. Print an option as a string of mm characters where the jj-th character is equal to '1' if the jj-th road is included in the option, and is equal to '0' if the road is not included. The roads should be numbered according to their order in the input. The options can be printed in any order. All the tt lines should be different.

Since it is guaranteed that mk106m \cdot k \le 10^6, the total length of all the tt lines will not exceed 10610^6.

If there are several answers, output any of them.

Sample Input 1

4 4 3
1 2
2 3
1 4
4 3

Sample Output 1

2
1110
1011

Sample Input 2

4 6 3
1 2
2 3
1 4
4 3
2 4
1 3

Sample Output 2

1
101001

Sample Input 3

5 6 2
1 2
1 3
2 4
2 5
3 4
3 5

Sample Output 3

2
111100
110110