program handstand
  implicit none
  integer :: n, k, i, m, a(100000), r, x, y, t
  logical :: b(100000)
  character(100000) :: s
  a = 0
  b = .false.
  read(*,*) n, k
  if (n.eq.1) then
    write(*,'(i0)') 1
    stop
  end if
  read(*,*) s
  s = trim(adjustl(s))
  r = 1
  if (s(1:1).eq."0") r = -r
  a(1) = r
  x = -1
  y = -1
  do i = 2, n
    if (s(i:i).eq.s(i-1:i-1)) then
      a(i) = a(i-1) + r
    else
      b(i-1) = .true.
      if ((x.lt.0).and.(r.gt.0)) x = i-1
      if ((y.lt.0).and.(r.lt.0)) y = i-1
      r = -r
      a(i) = r
    end if
  end do
  b(n) = .true.
  if ((x.lt.0).or.(y.lt.0)) then
    write(*,'(i0)') abs(a(n))
    stop
  end if
  t = 0
  if (y.lt.x) then
    t = t - a(y)
    k = k - 1
  end if
  t = t + a(x)
  do i = max(x,y)+1, n
    if (k.eq.0) exit
    if (b(i)) then
      if (a(i).lt.0) then
        t = t - a(i)
        y = i
        k = k - 1
      else
        t = t + a(i)
        x = i
        k = k - 1
      end if
    end if
  end do
  m = t
  do i = max(x,y)+1, n
    if (b(i)) then
      if (a(i).lt.0) then
        t = t + a(y) - a(x) - a(i)
        y = i
        if (m.lt.t) m = t
      else
        t = t + a(i)
        x = i
        if (m.lt.t) m = t
      end if
    end if
  end do
  write(*,'(i0)') m
  stop
end program handstand