#include<bits/stdc++.h>
using namespace std;
struct node{
double a,b;
}s[150];
double d1,c,d2,ans,l;
long long n;
bool cmp(node x,node y){
return x.a<y.a;
}
int main(){
scanf("%lf%lf%lf%lf%lld",&d1,&c,&d2,&s[1].b,&n);n++;
for(int i=2;i<=n;i++)scanf("%lf%lf",&s[i].a,&s[i].b);
sort(s+1,s+1+n,cmp);s[n+1].a=d1;
for(int i=1;i<=n;i++)s[i].a=s[i+1].a-s[i].a;
for(int i=1;i<=n;i++)cout<<s[i].a<<" ";
cout<<"\n";
for(int i=1;i<=n;i++){
if(l>=s[i].a*1.0/d2){l-=s[i].a*1.0/d2;continue;}
if((c-l)*d2+l*d2<s[i].a){cout<<"No Solution";return 0;}
ans+=s[i].a*1.0/d2*s[i].b;
cout<<i<<"\n"<<ans<<' ';
for(int j=i+1;j<=n;j++){
if(s[i].b<=s[j].b&&l+s[j].a*1.0/d2<=c){
l+=s[j].a*1.0/d2;
ans+=s[j].a*1.0/d2*s[i].b;
}else break;
}
cout<<ans<<"\n";
}
printf("%.2lf",ans);
return 0;
}