#include <iostream>
#include <cmath>
#include<algorithm>
using namespace std;
struct stu{
double dn;
double pn;
}dpn[3000];
bool cmp(stu x,stu y){
return x.dn<y.dn;
}
bool flag=true;
int main(){
double d,p,n,cnt=0,c,d1;
cin>>d1>>c>>d>>p>>n;
dpn[0].pn=p;
dpn[int(n)+1].dn=d1;
for(int i=1;i<=n;i++){
cin>>dpn[i].dn>>dpn[i].pn;
}sort(dpn+1,dpn+int(n)+1,cmp);
for(int i=0;i<=n+1;i++){
int l=i+1;
while(c*d>=dpn[l].dn-dpn[i].dn){
l++;
}
if(l==i+1){
flag=false;
break;
}
double qcnt=cnt;
for(int j=i+1;j<=l;j++){
if(dpn[j].pn<dpn[i].pn){
cnt+=(dpn[j].dn-dpn[i].dn)*dpn[i].pn/d;
i=j;
}
}if(qcnt==cnt){
int minx=5001,idx;
for(int j=i+1;j<=l;j++){
if(dpn[j].pn<minx){
minx=dpn[j].pn;
idx=j;
}
}
cnt+=(dpn[idx].dn-dpn[i].dn)*dpn[i].pn/d;
i=idx;
}
}if(flag)printf("%.2f",cnt);
else cout<<"No Solution";
}