import java.util.*

fun main(args: Array<String>) {
  val sc = Scanner(System.`in`)
  val n = sc.nextLong()

  println(ntl_1_a(n))
}

private fun ntl_1_a(n: Long): String {
  var na = n

  val pairList = mutableListOf<Pair<Long, Long>>()
  val sqrt = Math.sqrt(n.toDouble()).toLong()
  for (i in 2L..sqrt) {
    if (na % i != 0L) continue

    var ex = 0L
    while (na % i == 0L) {
      ex++
      na /= i
    }
    pairList.add(Pair(i, ex))
  }
  if (na != 1L) pairList.add(Pair(na, 1))

  var ans = ""
  for (p in pairList) {
    for (i in 0 until p.second) {
      ans += " " + p.first
    }
  }

  return n.toString() + ":" + ans
}

