#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-7;
const int inf = 0x3f3f3f3f;
const int hinf = 0x3f3f3f3f;
const long long mod = 1000000007;
int n;
long long l[1010], r[1010];
long long cnt[1010];
double p[1010];
double dp[1010][1010];
long long ten[20];
int k;
int main() {
  ten[0] = 1ll;
  for (int i = 1; i <= 18; i++) ten[i] = 10ll * ten[i - 1];
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) cin >> l[i] >> r[i];
  scanf("%d", &k);
  memset(cnt, 0, sizeof(cnt));
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j <= 17; j++) {
      if (l[i] <= 2ll * ten[j] - 1ll && r[i] >= ten[j]) {
        cnt[i] += 1ll * ten[j];
        if (r[i] < 2ll * ten[j] - 1ll) {
          cnt[i] -= 1ll * (2ll * ten[j] - 1ll - r[i]);
        }
        if (l[i] > ten[j]) cnt[i] -= l[i] - ten[j];
      }
    }
    if (r[i] == 1000000000000000000ll) cnt[i]++;
    p[i] = 1.0 * cnt[i] / (1.0 * (r[i] - l[i] + 1ll));
  }
  memset(dp, 0, sizeof(dp));
  dp[0][0] = 1.0;
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= i; j++) {
      dp[i][j] += dp[i - 1][j - 1] * p[i];
      dp[i][j - 1] += dp[i - 1][j - 1] * (1.0 - p[i]);
    }
  }
  double ans = 0;
  for (int i = 0; i <= n; i++) {
    if (100 * i >= n * k) {
      ans += dp[n][i];
    }
  }
  printf("%.15lf\n", ans);
}
