#include <bits/stdc++.h>
using namespace std;
const int Maxn = 1000 + 10;
const int INF = 0x7f7f7f7f;
const double eps = 1e-8;
const double pi = 3.1415926535897932384626433832795;
double p[Maxn], f[Maxn][Maxn];
long long L[Maxn], R[Maxn];
inline long long power(int a, int b) {
  long long ans = 1;
  for (int i = 1; i <= b; i++) ans *= a;
  return ans;
}
double calc(long long a, long long b) {
  char ch[50];
  int len1, len2;
  long long ansa = 0, ansb = 0;
  a--;
  sprintf(ch, "%I64d", a);
  len1 = (int)strlen(ch);
  for (int i = 1; i < len1; i++) ansa += power(10, i - 1);
  if (ch[0] != '1' && ch[0] != '0')
    ansa += power(10, len1 - 1);
  else if (ch[0] == '1')
    ansa += a - power(10, len1 - 1) + 1;
  sprintf(ch, "%I64d", b);
  len2 = (int)strlen(ch);
  for (int i = 1; i < len2; i++) ansb += power(10, i - 1);
  if (ch[0] != '1' && ch[0] != '0')
    ansb += power(10, len2 - 1);
  else if (ch[0] == '1')
    ansb += b - power(10, len2 - 1) + 1;
  return (ansb - ansa) * 1.0 / (b - a);
}
int main() {
  int n, K;
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> L[i] >> R[i];
    p[i] = calc(L[i], R[i]);
  }
  cin >> K;
  f[0][0] = 1;
  for (int i = 1; i <= n; i++) {
    f[i][0] = 1;
    for (int j = 1; j <= i; j++) f[i][0] *= (1 - p[j]);
  }
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++)
      f[i][j] = f[i - 1][j] * (1 - p[i]) + f[i - 1][j - 1] * p[i];
  double ans = 0;
  for (int i = 0; i <= n; i++)
    if (100 * i >= K * n) ans += f[n][i];
  printf("%.11f\n", ans);
  return 0;
}
