#include <bits/stdc++.h>
using namespace std;
long long dp[2222 + 2][2222 + 2][2];
int k;
char s[2222], t[2222];
void init() {
  for (int j = 1; j <= 2222; ++j)
    for (int b = 0; b < 2; ++b) dp[0][j][b] = b;
  for (int i = 1; i <= 2222; ++i)
    for (int j = 1; j <= 2222; ++j)
      for (int b = 0; b < 2; ++b)
        dp[i][j][b] =
            (dp[i - 1][j + 1][b] * 8LL + dp[i - 1][1][b | (j <= k)] * 2LL) %
            1000000007LL;
}
long long F(char* s, bool include = false) {
  int n = strlen(s), dis = k + 1, f = 0;
  long long res = 0;
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < s[i] - '0'; ++j)
      if (j == 4 || j == 7)
        res += dp[n - i - 1][1][f | (dis <= k)];
      else
        res += dp[n - i - 1][dis + 1][f];
    if (s[i] == '4' || s[i] == '7') {
      f |= dis <= k;
      dis = 1;
    } else
      ++dis;
  }
  return (res + (f && include)) % 1000000007LL;
}
int main() {
  int tc;
  scanf("%d%d", &tc, &k);
  init();
  while (tc--) {
    scanf("%s%s", s, t);
    printf("%d\n", (int)((F(t, true) - F(s) + 1000000007LL * 1000000007LL) %
                         1000000007LL));
  }
  return 0;
}
