program handstand
  implicit none
  integer :: n, k, i, m, a(100000), r, x, y, z, t, j
  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 = a(x)
  if (y.lt.x) then
    t = t - a(y)
    k = k - 1
  end if
  if ((k.gt.0).and.(n.gt.x)) then
    do i = x+1, n
      if (b(i)) then
        if (a(i).lt.0) then
          t = t - a(i)
          k = k - 1
        else
          t = t + a(i)
          z = i
          if (k.eq.0) exit
        end if
      end if
    end do
  end if
  m = t
  if (n.gt.z) then
    do i = z+1, n
      if (b(i)) then
        if (a(i).lt.0) then
          t = t + a(y) - a(i)
          if (x.lt.y) then
            t = t - a(x)
            do j = x+1, n
              if (b(j).and.a(j).gt.0) then
                x = j
                exit
              end if
            end do
          end if
          do j = y+1, n
            if (b(j).and.a(j).lt.0) then
              y = j
              exit
            end if
          end do
          if (m.lt.t) m = t
        else
          t = t + a(i)
          if (m.lt.t) m = t
        end if
      end if
    end do
  end if
  write(*,'(i0)') m
  stop
end program handstand