program prob6
    implicit none
    integer(8) :: n, i, ans, minsum
    integer(8), allocatable :: a(:), b(:), d(:)
    read(*,*) n
    allocate(a(n))
    allocate(b(n))
    allocate(d(n))
    read(*,*) a
    read(*,*) b

    d = a - b
    if(sum(d) < 0) then
        write(*,*) "-1"
        stop
    end if

    call qsort(d)

    do i = 1, n
        if(d(i) >= 0) then
            ans = i - 1
            exit
        end if
        minsum = minsum - d(i)
    end do

    do i = n, 1, -1
        minsum = minsum - d(i)
        ans = ans + 1
        if(minsum <= 0) then
            exit
        end if
    end do

    write(*,*) ans

    deallocate(a)
    deallocate(b)
    deallocate(d)
    stop
contains


  !
  ! swap two arguments
  !
subroutine swap(a, b)
    implicit none
    integer(8), intent(inout) :: a, b

    integer(8) :: c

    c = a
    a = b
    b = c

  end subroutine swap

  !
  ! quick sortを乱択化するためのsubroutine
  ! このsubroutineは非公開にしているため、kadai6.f90内の
  ! randintとはバッティングしない
  !
  subroutine randint(x, maxint)
    implicit none
    integer(8), intent(out) :: x
    integer(8), intent(in)  :: maxint

    real(8) :: r

    call random_number(r)

    x = int(maxint * r)

  end subroutine randint

  !
  ! quick sort
  !
  recursive subroutine qsort(x)
    implicit none
    integer(8), intent(inout) :: x(:)

    integer(8) :: n, pivot, pivindex, i, j

    n = size(x)
     
    !
    ! pivotのindexを1~nの中からランダムで選ぶ
    ! はじめの配列が特殊な形でも時間計算量がO(nlog n)になる
    ! この時間計測プログラムでは不要(配列がランダムなので)
    !
    call randint(pivindex, n)
    pivindex = pivindex + 1

    ! pivotを右端に除けておく
    pivot = x(pivindex)
    call swap(x(pivindex), x(n))
    
    !
    ! i はpivot以上の値が入っているindexの最小値
    ! j はいま調べているindex
    !
    i = 1
    do j = 1, n-1
      if( x(j) < pivot ) then
        call swap(x(i), x(j))
        i = i + 1
      end if
    end do

    ! i番目にpivot、i-1番目まではpivot未満、i+1番目からはpivot以上になる
    call swap(x(i), x(n))
    
    ! i <= 2ならiまではソート完了。そうでなければi-1までをソート
    if(i >= 3) then
      call qsort(x(:i-1))
    end if

    ! i >= n-1ならi以降はソート完了。そうでなければi+1以降をソート
    if(i <= n-2) then
      call qsort(x(i+1:))
    end if

    return
  end subroutine qsort

end program prob6