#include <bits/stdc++.h>
using namespace std;
long long A[1003], B[1003];
char a[1003], b[1003];
long long k;
long long dp[1003][2][2][1003][2];
long long F(long long pos, bool big, bool small, long long lst, bool ho) {
  if (pos == 1002) {
    return ho;
  }
  long long &ret = dp[pos][big][small][lst][ho];
  if (ret != -1 && big && small) return ret;
  ret = 0;
  for (long long i = (big) ? 0 : A[pos]; i <= (small ? 9 : B[pos]); i++) {
    ret += F(pos + 1, big || (i > A[pos]), small || (i < B[pos]),
             (i == 4 || i == 7) ? pos : lst,
             ho || ((i == 4 || i == 7) && ((pos - lst) <= k) && lst));
    ret = ret % 1000000007LL;
  }
  return ret;
}
int main() {
  memset(dp, -1, sizeof dp);
  long long t;
  scanf("%lld", &t);
  scanf("%lld", &k);
  while (t--) {
    scanf(" %s", a);
    scanf(" %s", b);
    memset(A, 0, sizeof A);
    memset(B, 0, sizeof B);
    for (long long i = 0, j = 1001 - strlen(a) + 1; a[i]; i++, j++) {
      A[j] = a[i] - '0';
    }
    for (long long i = 0, j = 1001 - strlen(b) + 1; b[i]; i++, j++) {
      B[j] = b[i] - '0';
    }
    printf("%lld\n", F(1, 0, 0, 0, 0));
  }
  return 0;
}
