import kotlin.math.ceil fun main() { val (n, m, k) = readInts() val g = List(n) { mutableListOf() } repeat(m) { val (a, b) = readInts() g[a-1].add(b-1) g[b-1].add(a-1) } val deg = IntArray(g.size) { g[it].size } val ans = mutableListOf() val ds = g.indices.sortedBy { deg[it] } fun go(curTot: Int) : Boolean { if (curTot == k) return true for (i in ds) { if (curTot + deg[i] > k || i in ans) continue ans.add(i) for (j in g[i]) { deg[j]-- } if (go(curTot + deg[i])) return true for (j in g[i]) { deg[j]++ } ans.removeLast() } return false } if (m >= k && go(0)) { println(ans.size) println(ans.joinToString(" ") { (it + 1).toString() }) } else { println("impossible") } } private fun readInt() = readln().toInt() private fun readLongs() = readStrings().map { it.toLong() } private fun readStrings() = readln().split(" ") private fun readInts() = readStrings().map { it.toInt() }