#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  string s1, s2;
  cin >> n;
  cin >> s1 >> s2;
  int vverh[100000], vniz[100000], rovno[100000];
  for (int i = 0; i < n; i++) {
    if ((s1[i] == '?') && (s2[i] == '?')) {
      vverh[i] = 45;
      vniz[i] = 45;
      rovno[i] = 10;
    } else if (s1[i] == '?') {
      vverh[i] = 9 - (int)s2[i] + '0';
      vniz[i] = (int)s2[i] - '0';
      rovno[i] = 1;
    } else if (s2[i] == '?') {
      vverh[i] = (int)s1[i] - '0';
      vniz[i] = 9 - (int)s1[i] + '0';
      rovno[i] = 1;
    } else {
      if (s1[i] > s2[i]) {
        vverh[i] = 1;
        vniz[i] = 0;
        rovno[i] = 0;
      }
      if (s1[i] < s2[i]) {
        vverh[i] = 0;
        vniz[i] = 1;
        rovno[i] = 0;
      }
      if (s1[i] == s2[i]) {
        vverh[i] = 0;
        vniz[i] = 0;
        rovno[i] = 1;
      }
    }
  }
  long long mod = 1000000007;
  long long vsevverh = 1, vsevniz = 1, vserovno = 1;
  ;
  for (int i = 0; i < n; i++) {
    vsevverh *= (vverh[i] + rovno[i]);
    vsevverh %= mod;
    vsevniz *= (vniz[i] + rovno[i]);
    vsevniz %= mod;
    vserovno *= rovno[i];
    vserovno %= mod;
  }
  long long result = 1;
  for (int i = 0; i < n; i++) {
    if (s1[i] == '?') {
      result *= 10;
      result %= mod;
    }
    if (s2[i] == '?') {
      result *= 10;
      result %= mod;
    }
  }
  result -= vsevniz;
  result -= vsevverh;
  result += vserovno;
  while (result < 0) {
    result += mod;
  }
  cout << result % mod;
  return 0;
}
