#include <bits/stdc++.h>
using namespace std;
int n, K, MyForce;
int level[9];
int prob[9];
int newprob[9];
double in_case[1 << 8];
double ans;
int count_bit(int x) {
  int ret = 0;
  for (int i = 0; i < 8; i++)
    if ((x & (1 << i)) > 0) ret++;
  return ret;
}
void updata() {
  double nowans = 0;
  for (int i = 0; i < (1 << n); i++) {
    double p = 1;
    for (int j = 0; j < n; j++)
      if ((i & (1 << j)) == 0)
        p *= double(10 - newprob[j]) / 10.0;
      else
        p *= double(newprob[j]) / 10.0;
    nowans += p * in_case[i];
  }
  ans = max(ans, nowans);
}
void dfs(int cur, int left) {
  if (cur == n)
    updata();
  else {
    for (int i = 0; i <= left; i++)
      if (prob[cur] + i > 10)
        break;
      else {
        newprob[cur] = prob[cur] + i;
        dfs(cur + 1, left - i);
      }
  }
}
int main() {
  ios ::sync_with_stdio(false);
  cout << fixed << setprecision(10);
  while (cin >> n >> K >> MyForce) {
    for (int i = 0; i < n; i++) {
      cin >> level[i] >> prob[i];
      prob[i] /= 10;
    }
    ans = 0;
    for (int i = 0; i < (1 << n); i++) {
      if (count_bit(i) > n / 2)
        in_case[i] = 1.0;
      else {
        int TotForce = 0;
        for (int j = 0; j < n; j++)
          if ((i & (1 << j)) == 0) TotForce += level[j];
        in_case[i] = double(MyForce) / double(MyForce + TotForce);
      }
    }
    dfs(0, K);
    cout << ans << endl;
  }
  return 0;
}
