program sequential_operations_on_sequence
  implicit none
  integer :: n, q, i, j, u = 1, l, r, m, x
  integer(8) :: p(0:100000) = 0_8, k, t(100000) = 0_8, ans(100001) = 0_8
  read(*,*) n, q
  p(1) = int(n,8)
  do i = 1, q
    read(*,*) k
    do while (k <= p(u))
      u = u-1
    end do
    u = u+1
    p(u) = k
  end do
  t(u) = 1_8
  do i = u, 1, -1
    j = i
    k = p(i)
    do while (k > p(1))
      r = j
      l = 1
      do while (r-l > 1)
        m = (l+r)/2
        if (p(m) > k) then
          r = m
        else
          l = m
        end if
      end do
      j = l
      t(j) = t(j)+t(i)*(k/p(j))
      k = mod(k,p(j))
    end do
    x = int(k,4)
    ans(x) = ans(x)+t(i)
  end do
  do i = n, 1, -1
    ans(i) = ans(i)+ans(i+1)
  end do
  do i = 1, n
    write(*,'(i0)') ans(i)
  end do
end program sequential_operations_on_sequence