#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const long long LINF = 0x3f3f3f3f3f3f3f3fLL;
const double PI = acos((long double)-1.0);
const double EPS = 1e-8;
const int MOD = 1e9 + 7;
template <typename T>
void cmin(T &x, T y) {
  if (y < x) x = y;
}
template <typename T>
void cmax(T &x, T y) {
  if (y > x) x = y;
}
long long qpow(long long x, long long n, long long mod = MOD) {
  if (n < 0) return 0;
  long long res = 1;
  while (n) {
    if (n & 1) res = res * x % mod;
    x = x * x % mod;
    n >>= 1;
  }
  return res;
}
long long sq(long long x) { return x * x; }
double sq(double x) { return x * x; }
namespace Solver {
void InitOnce() { int t; }
int n, k;
long long dp[1005][1005][2];
char l[1005];
char r[1005];
const int PRE = 1004;
long long calc(char *s, int len, int pos, int pre, int lim, bool ok) {
  if (lim == 0 && dp[pos][pre][ok] != -1) return dp[pos][pre][ok];
  if (pos == 0) return dp[pos][pre][ok] = ok;
  int up = lim ? s[len + 1 - pos] - '0' : 9;
  long long res = 0;
  for (int d = 0; d <= up; ++d) {
    if (d != 4 && d != 7) {
      res += calc(s, len, pos - 1, pre, lim & (d == up), ok);
    } else {
      if (pre == PRE)
        res += calc(s, len, pos - 1, pos, lim & (d == up), ok);
      else
        res +=
            calc(s, len, pos - 1, pos, lim & (d == up), ok | (pre - pos <= k));
    }
  }
  res = (res % MOD + MOD) % MOD;
  if (lim == 0) return dp[pos][pre][ok] = res;
  return res;
}
void Read() {
  int res = scanf("%d%d", &n, &k);
  if (res == -1) exit(0);
  memset(dp, -1, sizeof(dp));
}
long long check(char *s) {
  int n = strlen(s + 1);
  int pre = -INF;
  for (int i = 1; i <= n; ++i) {
    if (s[i] == '4' || s[i] == '7') {
      int len = i - pre;
      if (len <= k) return 1;
      pre = i;
    }
  }
  return 0;
}
void Solve() {
  while (n--) {
    scanf("%s%s", l + 1, r + 1);
    int rl = strlen(r + 1);
    int Ll = strlen(l + 1);
    long long resR = (calc(r, rl, rl, PRE, 1, 0) % MOD + MOD) % MOD;
    long long resL =
        ((calc(l, Ll, Ll, PRE, 1, 0) - check(l)) % MOD + MOD) % MOD;
    printf("%lld\n", (resR - resL + MOD) % MOD);
  }
}
}  // namespace Solver
int main() {
  Solver::InitOnce();
  while (true) {
    Solver::Read();
    Solver::Solve();
  }
  return 0;
}
