#include <bits/stdc++.h>
using namespace std;
int ts, kk = 1;
int n, m;
char a[1005];
char b[1005];
char sa[1005];
char sb[1005];
int p[2][2][2][1001][1001];
int vs[2][2][2][1001][1001];
char qs[1005];
int dp(bool ok, bool bg, bool sm, int ls, int i) {
  if (i == -1) {
    return (long long)ok;
  }
  int &pr = p[ok][bg][sm][ls][i];
  int &qr = vs[ok][bg][sm][ls][i];
  if (qr == kk) return pr;
  if (qr && bg && sm) return pr;
  qr = kk;
  pr = 0;
  int mn = (bg == 1) ? 0 : (a[i] - '0');
  int mx = (sm == 1) ? 9 : (b[i] - '0');
  for (int k = mn; k <= mx; k++) {
    bool nok =
        (ok == 1) ? 1 : (ls < 1000 && (k == 4 || k == 7) && (ls - i) <= m);
    bool nbg = (bg == 1) ? 1 : (k > mn);
    bool nsm = (sm == 1) ? 1 : (k < mx);
    int nls = (nok == 1) ? 0 : ((k == 4 || k == 7) ? i : ls);
    pr += dp(nok, nbg, nsm, nls, i - 1);
    if (pr >= 1000000007LL) pr -= 1000000007LL;
  }
  return pr;
}
int main() {
  int t, i, j, k;
  kk = 1;
  scanf("%d%d", &ts, &m);
  while (ts--) {
    kk++;
    scanf(" %s %s", sa, sb);
    j = strlen(sa);
    k = strlen(sb);
    n = max(j, k);
    j--;
    k--;
    for (i = 0; i < n; i++) {
      if (j > -1)
        a[i] = sa[j--];
      else
        a[i] = '0';
      if (k > -1)
        b[i] = sb[k--];
      else
        b[i] = '0';
    }
    printf("%d\n", dp(0, 0, 0, 1000, n - 1));
  }
  return 0;
}
