#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
int t, k, len;
string l, r;
long long a[1005];
long long f[1005][1005][10];
long long dfs(int len, int dis, int qwq, int less) {
  if (len == 0) return qwq;
  if (!less && f[len][dis][qwq] != -1) return f[len][dis][qwq];
  long long ed = less ? a[len] : 9;
  long long ret = 0;
  for (int i = 0; i <= ed; i++)
    if (i != 4 && i != 7)
      ret = (ret + dfs(len - 1, max(dis - 1, 0), qwq, less && i == ed)) % mod;
    else
      ret = (ret + dfs(len - 1, k, qwq || dis, i == ed && less)) % mod;
  if (!less) f[len][dis][qwq] = ret;
  return ret;
}
int check() {
  int n = 2333;
  for (int i = len; i; i--)
    if (a[i] == 4 || a[i] == 7)
      if (n - i <= k)
        return 1;
      else
        n = i;
  return 0;
}
int main() {
  cin >> t >> k;
  memset(f, -1, sizeof(f));
  while (t--) {
    long long ans;
    cin >> l >> r;
    len = l.size();
    for (int i = len - 1; i >= 0; i--) a[len - i] = l[i] - '0';
    ans = (dfs(len, 0, 0, 1) - check() + mod) % mod;
    len = r.size();
    for (int i = len - 1; i >= 0; i--) a[len - i] = r[i] - '0';
    ans = (dfs(len, 0, 0, 1) + mod - ans) % mod;
    cout << ans << endl;
  }
  return 0;
}
