#include <bits/stdc++.h>
using namespace std;
int n, k, a;
int ly[10], lv[10];
double prob[10];
int up[10];
double mx;
double calc(int a, int b) { return (double)(a) / (double)(b); }
double go(int pos, int bit) {
  if (pos == n) {
    int b = 0, c2 = 0;
    for (int i = 0; i < n; i++) {
      if ((bit & (1 << i)) == 0)
        b = b + lv[i];
      else
        c2++;
    }
    if (c2 * 2 > n)
      return 1.0;
    else
      return calc(a, a + b);
  }
  double p = ly[pos] + up[pos] * 10;
  p = p / 100.0;
  if (p > 1.0) p = 1.0;
  return p * go(pos + 1, bit | (1 << pos)) + (1 - p) * go(pos + 1, bit);
}
void back(int pos, int left) {
  if (pos == n) {
    double fo = go(0, 0);
    if (fo > mx) mx = fo;
    return;
  }
  for (int i = 0; i <= left; i++) {
    if (ly[pos] + i * 10 <= 100) {
      up[pos] = i;
      back(pos + 1, left - i);
    }
  }
}
int main() {
  mx = 0.0;
  scanf("%d%d%d", &n, &k, &a);
  for (int i = 0; i < n; i++) scanf("%d%d", &lv[i], &ly[i]);
  back(0, k);
  printf("%.10lf\n", mx);
  return 0;
}
