#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
long long dp[1005][1005][2];
int k;
long long f(int pos, int luk, int s) {
  if (pos < 0) return (s == 1);
  if (dp[pos][luk][s] != -1) return dp[pos][luk][s];
  long long ret = 0;
  for (int i = 0; i < 10; ++i) {
    int nluk = luk, ns = s;
    if (nluk == 0) {
      if (i == 4 || i == 7) nluk++;
    } else if (nluk < k) {
      if (i == 4 || i == 7)
        nluk = 0, ns = 1;
      else
        nluk++;
    } else {
      if (i == 4 || i == 7)
        nluk = 0, ns = 1;
      else
        nluk = 0;
    }
    ret = (ret + f(pos - 1, nluk, ns)) % mod;
  }
  dp[pos][luk][s] = ret;
  return ret;
}
long long calc(char r[], int n) {
  int s = 0, luk = 0;
  long long ans = 0;
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < r[i] - '0'; ++j) {
      int nluk = luk, ns = s;
      if (nluk == 0) {
        if (j == 4 || j == 7) nluk++;
      } else if (nluk < k) {
        if (j == 4 || j == 7)
          nluk = 0, ns = 1;
        else
          nluk++;
      } else {
        if (j == 4 || j == 7)
          nluk = 0, ns = 1;
        else
          nluk = 0;
      }
      ans = (ans + f(n - 2 - i, nluk, ns)) % mod;
    }
    int p = r[i] - '0';
    if (luk == 0) {
      if (p == 4 || p == 7) luk++;
    } else if (luk < k) {
      if (p == 4 || p == 7)
        luk = 0, s = 1;
      else
        luk++;
    } else {
      if (p == 4 || p == 7)
        luk = 0, s = 1;
      else
        luk = 0;
    }
  }
  return ans;
}
int main() {
  char s[1005], r[1005];
  int n, t;
  memset(dp, -1, sizeof(dp));
  scanf("%d %d", &t, &k);
  while (t--) {
    scanf("%s %s", s, r);
    long long x = calc(r, strlen(r)) - calc(s, strlen(s));
    n = strlen(r);
    int f = 0, g = -1;
    for (int i = 0; i < n; ++i) {
      if (r[i] == '4' || r[i] == '7') {
        if (g == -1)
          g = i;
        else {
          if (i - g <= k) f = 1;
          g = i;
        }
      }
    }
    x += f;
    printf("%lld\n", (x + mod) % mod);
  }
  return 0;
}
