#include <bits/stdc++.h>
using namespace std;
char s[1007];
int t, k, f[1007][1007][2], a[1007], l;
int dfs(int pos, int d, int q, int m) {
  if (!pos) return q;
  if (!m && f[pos][d][q] != -1) return f[pos][d][q];
  int ans = 0, MAX = m ? a[pos] : 9;
  for (int i = 0; i <= MAX; i++) {
    if (i != 4 && i != 7)
      ans = (ans + dfs(pos - 1, max(d - 1, 0), q, m && i == MAX)) % 1000000007;
    else
      ans = (ans + dfs(pos - 1, k, q || d, m && i == MAX)) % 1000000007;
  }
  if (!m) f[pos][d][q] = ans;
  return ans;
}
int check() {
  int LAST = 2007;
  for (int i = l; i; i--) {
    if (a[i] == 4 || a[i] == 7) {
      if (LAST - i <= k) return 1;
      LAST = i;
    }
  }
  return 0;
}
int main() {
  scanf("%d%d", &t, &k);
  memset(f, -1, sizeof(f));
  while (t--) {
    scanf("%s", s);
    l = strlen(s);
    for (int i = l - 1; i >= 0; i--) a[l - i] = s[i] - '0';
    int ans = (dfs(l, 0, 0, 1) - check() + 1000000007) % 1000000007;
    scanf("%s", s);
    l = strlen(s);
    for (int i = l - 1; i >= 0; i--) a[l - i] = s[i] - '0';
    ans = (dfs(l, 0, 0, 1) + 1000000007 - ans) % 1000000007;
    printf("%d\n", ans);
  }
  return 0;
}
