import scala.annotation.tailrec
import scala.collection.mutable
import scala.collection.mutable.ArrayBuffer
object Main extends App {
  import scala.io.StdIn._


  val Array(n, m) = readLine.trim.split(' ').map(_.toInt)
  val fan = readLine.trim.split(' ').map(_.toInt) :+ n + 1
  val q = readInt
  val defaultLoss = fan.head - 1
  val loss = fan.indices.tail.map(i ⇒ fan(i).toLong - fan(i - 1)).sorted.toArray
  val sumLoss = (0L +: loss).also(a ⇒ a.indices.tail.foreach(i ⇒ a(i) += a(i - 1)))
  for (l ← readLine.trim.split(' ').map(_.toInt)){
    if (defaultLoss <= l) {
      var min = 1
      var max = n
      while (min < max) {
        val mid = (min + max) / 2
        val count = upperBound(loss, mid)//lossが起きない送風機の数
        if (l < sumLoss.last - sumLoss(count) - (m - count) * mid + defaultLoss) {
          min = mid + 1
        } else {
          max = mid
        }
      }
      println(max)
    }else println(-1)
  }


  def upperBound(array: Array[Long], target: Int): Int = {
    var left = 0
    var right = array.length
    while(left < right){
      val mid = (left + right) / 2
      if (array(mid) <= target){
        left = mid + 1
      }else {
        right = mid
      }
    }
    right
  }
  implicit class Scope[T](val value: T) extends AnyVal {
    @inline
    def let[A](func: T ⇒ A): A = func(value)
    @inline
    def also(func: T ⇒ Unit): T = {
      func(value)
      value
    }
  }
}

