program main
  
  implicit none
  integer(8) :: n
  integer(8) :: i,j,k,l,m,ans
  integer(8), allocatable :: mm(:), ll(:)
  integer(8) :: tmp, summ
  
  read(*,*) n, k
  allocate( mm(k:n+1) )
  allocate( ll(k:n+1) )
  
  tmp = 0
  do j = 0, k - 2 
    tmp = tmp + j
  end do
  summ = tmp
  do j = k, n + 1  
   summ = summ + j - 1
    mm(j) = mm(j) + summ
  end do

  tmp = 0
  do j = n-k+1, n  
    tmp = tmp + j
  end do
  summ = tmp
  tmp  = n-k+1
  do j = k, n+1  
   ll(j) = summ
    tmp  = tmp - 1
    summ = summ + tmp
  end do

  ans = 0 
  do i = k, n + 1

    !m = 0
    !do j = 0, i - 1  
    !  m = m + j
    !end do
    !l = 0
    !do j = n-i+1, n 
    !  l = l + j
    !end do

    ans = ans + ll(i) - mm(i) + 1
    !ans = ans + l - mm(i) + 1

  end do
  print*, mod( ans, 10**9+7 ) 
  
end program main

