#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
const int INF = 1e9;
const long long LINF = 1e18;
const int WOW = 40000;
const int NIL = 0;
const int dy[8] = {1, 0, -1, 0, 1, 1, -1, -1};
const int dx[8] = {0, 1, 0, -1, 1, -1, 1, -1};
const double PI = 2 * acos(0);
const int MAXN = 1005;
double memo[MAXN][MAXN];
int N, K;
double p[MAXN];
long long cnt(long long n) {
  long long t = 1;
  long long ret = 0;
  while (t * 2 <= n) {
    ret += t;
    t *= 10;
  }
  if (n >= t) ret += n - t + 1;
  return ret;
}
int main() {
  scanf("%d", &N);
  for (int i = 0; i < N; ++i) {
    long long l, r;
    scanf("%lld%lld", &l, &r);
    p[i] = 1.0 * (cnt(r) - cnt(l - 1)) / (r - l + 1);
  }
  scanf("%d", &K);
  int x = (N * K) % 100 ? N * K / 100 + 1 : N * K / 100;
  memo[0][0] = 1;
  for (int i = 0; i < N; ++i) {
    for (int j = 0; j <= N; ++j) {
      memo[i + 1][j + 1] += memo[i][j] * p[i];
      memo[i + 1][j] += memo[i][j] * (1 - p[i]);
    }
  }
  double sum = 0;
  for (int i = x; i <= N; ++i) sum += memo[N][i];
  printf("%.9lf\n", sum);
}
