#include <bits/stdc++.h>
using namespace std;
long long h, m, k;
long long pot(long long p, long long w) {
  if (w == 0) return 1;
  long long wyn = p;
  for (int i = 0; i < w - 1; ++i) wyn *= p;
  return wyn;
}
long long Ile(long long n, long long K) {
  if (K == 0) return n;
  return n / pot(10, K - 1);
}
long long IleDo0(long long x) {
  long long il = 0;
  while (x != 0) {
    if (x % 10 != 0) ++il;
    x /= 10;
  }
  return il;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin >> h >> m >> k;
  long long h1, m1, h2, m2;
  cin >> h1 >> m1 >> h2 >> m2;
  if (h1 == h2) {
    if (m1 == m2) {
      cout << "0";
      return 0;
    }
    if (m1 < m2) {
      long long odp = Ile(m2, k);
      if (m1 != 0) odp -= Ile(m1, k);
      cout << odp;
      return 0;
    }
  }
  long long odp = 0;
  if (m1 != 0) odp += Ile(m - 1, k) - Ile(m1, k);
  if (m2 != 0) odp += Ile(m2, k);
  if (h1 < h2) {
    long long ileH = h2 - h1 - 1;
    if (m1 == 0) ++ileH;
    odp += Ile(m - 1, k) * ileH;
    odp += Ile(h2, max((long long)0, k - IleDo0(m - 1)));
    if (h1 != 0) odp -= Ile(h1, max((long long)0, k - IleDo0(m - 1)));
  } else {
    long long ileH1 = h - h1 - 1;
    long long ileH2 = h2;
    if (m1 == 0) ++ileH1;
    odp += Ile(m - 1, k) * (ileH1 + ileH2);
    if (h1 < h - 1) {
      odp += Ile(h - 1, max((long long)0, k - IleDo0(m - 1)));
      if (h1 != 0) odp -= Ile(h1, max((long long)0, k - IleDo0(m - 1)));
    }
    if (h2 != 0) odp += Ile(h2, max((long long)0, k - IleDo0(m - 1)));
    if (IleDo0(h - 1) + IleDo0(m - 1) >= k) ++odp;
  }
  cout << odp;
  return 0;
}
