#include <bits/stdc++.h>
#define ll long long
#define pp push_back
#define ff first
#define ss second
using namespace std;
ll w,m,mm,h,r,l,ii,i1,jj,a,x[1000001],y[1000001],z,zz,g,aa,bb,b,c,d[100001],k,vis,kk,mod=1e9+7,q,inf=1e18;
ll T,i,j,n;
vector <ll> v[1000001],vv;
pair <ll,ll> p;
map <ll,ll> mp,mpp,mppp;
set <ll> see;
set <ll> se;
set <ll> :: iterator it,itt,it1;
string s,s2,s1,t;
char cc;
int main()
{
ios::sync_with_stdio(0);
cin >> l >> r >> a >> b >> k;
z=((l*a)%mod)+(((l-1)/k*b)%mod);
z%=mod;
z*=(r-l+1);
z%=mod;
r-=l;
z+=((r*(r+1)/2*a)%mod);
if(l%k!=0)
r-=(k-(l%k));
q=(r-1)/k+1;
aa=q;
q=q*(q+1)/2;
q%=mod;
q*=k;
q%=mod;
if(r%k!=0)
q-=(k-(r%k))*aa;
z+=q*b;
z%=mod;
cout << z;
return 0;
}
/*
*/
Copy