#include <bits/stdc++.h>
using namespace std;
double Dis, Cap, Tra, Pri;
double Cost;
int N, Now;
struct node {
double dis, cost;
} a[10];
bool cmp(node a, node b) {
return a.dis < b.dis;
}
int main() {
cin >> Dis >> Cap >> Tra >> Pri >> N;
for (int i = 1; i <= N; i++)
cin >> a[i].dis >> a[i].cost;
sort(a + 1, a + 1 + N, cmp);
a[0].cost = Pri, a[0].dis = 0;
if (!N && Cap * Tra < Dis) {
cout << "No Solution" << endl;
system("pause");
return 0;
}
double MaxDis = Cap * Tra;
int Aim = Now;
while (true) {
bool flag = 0;
for (int i = Now; i <= N; i++) {
if (a[i].cost <= a[Aim].cost && a[i].dis - a[Now].dis <= MaxDis) {
Cost += (a[i].dis - a[Now].dis) * a[Now].cost;
Aim = i;
flag = 1;
}
}
Now = Aim;
if (!flag) {
if (a[Now].dis + MaxDis >= Dis) {
Cost += ((Dis - a[Now].dis) / Tra) * a[Now].cost;
cout << Cost << endl;
system("pause");
return 0;
}
else {
cout << "No Solution" << endl;
system("pause");
return 0;
}
}
}
}