#include<bits/stdc++.h>
using namespace std;
double d1,c,d2,p,s,t,k,u;
int n,o=1;
struct f
{
double d,pp;
}x[10];
inline long long read()
{
long long x=0,f=1;
char c=getchar();
while(c>'9'||c<'0')
{
if(c=='-')
f=-1;
c=getchar();
}
while(c>='0'&&c<='9')
{
x=x*10+c-'0';
c=getchar();
}
}
int main()
{
cin>>d1>>c>>d2>>p>>n;
k=c*d2;
for(int i=1;i<=n;i++)
cin>>x[i].d>>x[i].pp;
x[0].pp=p;
if(d1-x[n].d>c*d2)
{
cout<<"No Solution"<<endl;
return 0;
}
if(n==0)
{
printf("%0.2f",d1/d2*p);
return 0;
}
while(s<d1)
{
double minn=1000.0;
for(int i=o;i<=n;i++)
if(x[i].d<=k+s)
{
if(x[i].pp<p)
{
o=i;
u=x[i].d;
break;
}
if(x[i].pp<minn)
{
minn=x[i].pp;
o=i;
}
}
if(x[o].pp<p)
{
t+=(u-s)/d2*p;
s=u;
p=x[o].pp;
}
else
{
t+=p*c;
p=x[o].pp;
s+=k;
}
if(k+s>=d1)
{
int flag=1;
for(int i=o;i<=n;i++)
if(x[i].pp<x[o].pp)
{
flag=0;
o=i;
t+=(x[i].d-s)/d2*p;
s=x[i].d;
p=x[i].pp;
break;
}
if(flag==1)
{
t+=(d1-s)/d2*p;
break;
}
}
}
printf("%0.2f",t);
}