Problem:
Score: 300 points

Problem Statement

In Republic of Atcoder, there are N prefectures, and a total of M cities that belong to those prefectures.

City i is established in year Y_i and belongs to Prefecture P_i.

You can assume that there are no multiple cities that are established in the same year.

It is decided to allocate a 12-digit ID number to each city.

If City i is the x-th established city among the cities that belong to Prefecture i, the first six digits of the ID number of City i is P_i, and the last six digits of the ID number is x.

Here, if P_i or x (or both) has less than six digits, zeros are added to the left until it has six digits.

Find the ID numbers for all the cities.

Note that there can be a prefecture with no cities.

Constraints

1 \leq N \leq 10^5

1 \leq M \leq 10^5

1 \leq P_i \leq N

1 \leq Y_i \leq 10^9

Y_i are all different.

All values in input are integers.

Input

Input is given from Standard Input in the following format:

N M
P_1 Y_1
:
P_M Y_M

Output

Print the ID numbers for all the cities, in ascending order of indices (City 1, City 2, ...).

Sample Input 1

2 3
1 32
2 63
1 12

Sample Output 1

000001000002
000002000001
000001000001

As City 1 is the second established city among the cities that belong to Prefecture 1, its ID number is 000001000002.

As City 2 is the first established city among the cities that belong to Prefecture 2, its ID number is 000002000001.

As City 3 is the first established city among the cities that belong to Prefecture 1, its ID number is 000001000001.

Sample Input 2

2 3
2 55
2 77
2 99

Sample Output 2

000002000001
000002000002
000002000003

Solution in Scala (2.11.7) (judge verdict: Time Limit Exceeded)

object Main extends App {
	private def func(lines: Iterator[String]) {
		//TODO scanner?

		val line = lines.zipWithIndex.map { case (e, gi) =>
			val tmp = e.split(' ')
			val p = java.lang.Integer.parseInt(tmp(0))
			val y = java.lang.Integer.parseInt(tmp(1))
			(p, (y, gi))
		}.toList

		/*
				var iii = -1
				val line = lines.map { e =>
					val tmp = e.split(' ')
					val p = java.lang.Integer.parseInt(tmp(0))
					val y = java.lang.Integer.parseInt(tmp(1))
					iii += 1
					(p, (y, iii))
				}.toList
		*/
		//val idMap = line.indices.map(_ => 0L).toArray
		val idMap = new Array[Long](line.size)
		line.groupBy(_._1).foreach { case (pgr, ylist) =>
			ylist.toSeq.map(_._2).sortBy(_._1).map(_._2).zipWithIndex.foreach { case (gi, yindex) =>
				//val id = "%06d%06d".format(pgr, (yindex + 1))
				//val id = str(pgr, yindex)
				////println(gi, id)
				////idMap = idMap + (gi -> id)
				//idMap(gi) = id

				idMap(gi) = 1000000L * pgr + (yindex + 1)
			}
		}
		val pw = new java.io.PrintWriter(System.out)
		idMap.foreach { e =>
			val tmp = java.lang.Long.toString(1000000000000L + e).substring(1, 13)
			pw.println(tmp)
		}
		pw.flush()
	}

//	private val start = System.currentTimeMillis()
//	func((0 until 100).map(i => (i % 2) + " " + i).toIterator)
//	//func((0 until 100).map(i => (i % 1) + " " + -i))
//	func((0 until 100000).map(i => (i % 2) + " " + i).toIterator)
//	//func((0 until 100000).map(i => (i % 1) + " " + -i))
//	func((0 until 100000).map(i => i + " " + i).toIterator)
//	println(System.currentTimeMillis() - start)

	//TODO 入力が遅い？
	private val lines: Iterator[String] = scala.io.Source.stdin.getLines
	lines.next()
	func(lines)
}