#include <bits/stdc++.h>
#include <experimental/random>
#include <random>
//#include <ext/pb_ds/assoc_container.hpp>
//using namespace __gnu_pbds;
using namespace std;
using ld = long double;
using ll = long long;
const ll INF = 2e18, MOD = 1e9 + 7;
void solve();
signed main() {
#ifdef LOCAL
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
ios::sync_with_stdio(false);
cin.tie(0);
int q = 1;
//cin >> q;
while (q--) {
solve();
}
}
void solve() {
ll n, k;
cin >> n >> k;
vector<pair<ll, ll>> hv;
for (int i = 0; i < n; i++) {
ll a, b; cin >> a >> b;
if (b == -1) b = INF;
hv.emplace_back(a, b);
}
ld ans = INF;
for (int mask = 0; mask < (1 << n); mask++) {
vector<ll> cnt, cnt2;
for (int i = 0; i < n; i++) {
if (!((mask >> i) & 1)) {
cnt2.push_back(hv[i].first);
} else {
cnt.push_back(hv[i].second);
}
}
sort(cnt.begin(), cnt.end());
sort(cnt2.begin(), cnt2.end());
if (cnt.size() > k) continue;
ll sm = 0;
for (int i = 0; i < k - cnt.size(); i++) {
sm += cnt2[i];
}
ld time = ld(sm) / ld(cnt.size() + 1);
for (int i = 0; i < cnt.size(); i++) {
time += ld(cnt[i]) / ld(i + 1);
}
ans = min(ans, time);
}
cout << fixed << setprecision(9) << ans;
}