#include <bits/stdc++.h>
using namespace std;

int main() {
  int K;
  string S, T;
  cin >> K >>  S >> T;
  
  
  double ans=0;
  
  for(int i=1; i<=9; i++){
    for(int j=1; j<=9; j++){
      
      vector<int>TAKA(10);
      vector<int>AO(10);
      vector<int>WA(10);
      for(int k=0; k<4; k++){
        int n=int(S[k]-'0');
        TAKA[n]++;
        WA[n]++;
        n=int(T[k]-'0');
        AO[n]++;
        WA[n]++;
      }
      
      TAKA[i]++;
      AO[j]++;
      
      int f=0;
      for(int k=0; k<10; k++){
        if(TAKA[k]+AO[k]>K)f=1;
      }
    //  cout << f << ' ' << i << ' ' << j << endl;
      if(f==1)continue;
      
      int taka=0;
      int aoki=0;
      for(int k=0; k<10; k++){
        taka+=k*pow(10, TAKA[k]);
        aoki+=k*pow(10, AO[k]);
      }
      
      if(taka<=aoki)continue;
      //cout << i << ' ' << j << endl;
      double a, b, c, d;
      if(i!=j){
        a=(K-WA[i]);
        b=(K-WA[j]);
      }
      else if(i==j){
        a=(K-WA[i]);b=(K-WA[i]-1);
      }
      c=(9*K-8); d=(9*K-9);
      ans+=a/c*b/d;
      
    }
  } 
  cout << std::fixed << std::setprecision(9);
  cout << ans << endl;
}
#include <bits/stdc++.h>
using namespace std;

int main(){
    double N,D,H,d,h;
    double notans = 1000.0, tmp, ans;
    cin >> N >> D >> H;
    for(int i=0; i<N; i++){
        cin >> d >> h;
        tmp = (H-h)/(D-d);
        if(tmp<notans) notans = tmp;
    }
    ans = H-notans*D;
    if(ans<0.0) ans = 0.0;
    cout << ans << endl;
    return 0;
}