function _binary_search(a, n, l, r) {
  if (l > r) return -1;
  if (l == r) {
    if (a[l] == n) return l;
    return -1;
  }

  var mid = Math.floor( (l + r) / 2 )
  if (a[mid] == n) return mid;
  if (n < a[mid]) return _binary_search(a, n, l, mid-1)
  if (n > a[mid]) return _binary_search(a, n, mid+1, r)
}

function binary_search(a, n) {
  return _binary_search(a, n, 0, a.length - 1)
}

function toFixed(num) {
  var str = 1000000 + num
  return (str + '').substring(1, 100)
}

// inputに入力データ全体が入る
function Main(input) {
  inputs = input.split(/\n/);
  // N 個の県, M個の市
  var firstLine = inputs[0]
  var firstLines = firstLine.split(/\s/)
  var n = Number(firstLines[0])
  var m = Number(firstLines[1])

  var hash = {}
  var prefLineLength = inputs.length - 1 - 1
  for (var i = 0; i < prefLineLength; i++) {
    var prefLine = inputs[i+1]
    var prefLines = prefLine.split(/\s/)
    var p = Number(prefLines[0])
    var y = Number(prefLines[1])
    if (!hash[p]) {
      hash[p] = []
    }
    hash[p].push(y)
  }

  // sort hash values
  for (var i = 0; i < prefLineLength; i++) {
    hash[p] = hash[p].sort()
  }

  // loop again for print result
  for (var i = 0; i < prefLineLength; i++) {
    var prefLine = inputs[i+1]
    var prefLines = prefLine.split(/\s/)
    var p = Number(prefLines[0])
    var y = Number(prefLines[1])
    var ps = hash[p]
    if (!ps) continue;
    var index = binary_search(ps, y)
    console.log(`${toFixed(p)}${toFixed(index + 1)}`)
  }
}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
