#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, k;
  double A;
  cin >> n >> k >> A;
  int lev[8];
  int pr[8];
  for (int i = 0; i < n; i++) cin >> lev[i] >> pr[i];
  int cpos[9] = {0};
  for (int i = 0; i < k; i++) cpos[i] = n;
  bool done = false;
  double best = 0;
  while (!done) {
    int tpr[9] = {0};
    for (int i = 0; i < k; i++) tpr[cpos[i]] += 10;
    bool sk = false;
    for (int i = 0; i < n; i++) {
      tpr[i] += pr[i];
      if (tpr[i] > 100) sk = true;
    }
    if (!sk) {
      double ans = 0;
      for (int j = 0; j < (1 << n); j++) {
        double prs = 1;
        double B = 0;
        int pos = 0;
        for (int i = 0; i < n; i++) {
          if (j & (1 << i)) {
            prs = double(tpr[i] * prs) / 100;
            pos++;
          } else {
            prs = double(prs * (100 - tpr[i])) / 100;
            B += lev[i];
          }
        }
        if (pos <= n / 2) prs = A * prs / (A + B);
        ans += prs;
      }
      if (ans > best) best = ans;
    }
    if (cpos[0] == 0) {
      done = true;
    } else {
      int t = 0;
      cpos[t]--;
      while (cpos[t] < cpos[t + 1]) {
        t++;
        cpos[t]--;
      }
      t--;
      while (t > -1) {
        cpos[t] = n;
        t--;
      }
    }
  }
  cout.precision(6);
  cout.setf(ios::fixed, ios::floatfield);
  cout << best << endl;
  return 0;
}
