Jamie loves sleeping. One day, he decides that he needs to wake up at exactly hh: mm. However, he hates waking up, so he wants to make waking up less painful by setting the alarm at a lucky time. He will then press the snooze button every x minutes until hh: mm is reached, and only then he will wake up. He wants to know what is the smallest number of times he needs to press the snooze button.

A time is considered lucky if it contains a digit '7'. For example, 13: 07 and 17: 27 are lucky, while 00: 48 and 21: 34 are not lucky.

Note that it is not necessary that the time set for the alarm and the wake-up time are on the same day. It is guaranteed that there is a lucky time Jamie can set so that he can wake at hh: mm.

Formally, find the smallest possible non-negative integer y such that the time representation of the time x·y minutes before hh: mm contains the digit '7'.

Jamie uses 24-hours clock, so after 23: 59 comes 00: 00.

Input

The first line contains a single integer x (1 ≤ x ≤ 60).

The second line contains two two-digit integers, hh and mm (00 ≤ hh ≤ 23, 00 ≤ mm ≤ 59).

Output

Print the minimum number of times he needs to press the button.

Examples

Input

3
11 23


Output

2


Input

5
01 07


Output

0

Note

In the first sample, Jamie needs to wake up at 11:23. So, he can set his alarm at 11:17. He would press the snooze button when the alarm rings at 11:17 and at 11:20.

In the second sample, Jamie can set his alarm at exactly at 01:07 which is lucky.
#include <bits/stdc++.h>
using namespace std;
template <class T, class U>
inline void smin(T &a, U b) {
  if (a > b) a = b;
}
template <class T, class U>
inline void smax(T &a, U b) {
  if (a < b) a = b;
}
template <class T>
inline void gn(T &x) {
  char c, sg = 0;
  while (c = getchar(), (c > '9' || c < '0') && c != '-' && c != -1)
    ;
  if (c == -1) return;
  if (c == '-') sg = 1, c = getchar();
  for (x = 0; c >= '0' && c <= '9';
       x = (x << 1) + (x << 3) + c - '0', c = getchar())
    ;
  if (sg) x = -x;
}
template <class T>
void print(T x) {
  if (x < 0) return putchar('-'), print(-x);
  if (x < 10) {
    putchar(x + '0');
    return;
  }
  print(x / 10);
  putchar(x % 10 + '0');
}
template <class U, class V>
inline void gn(U &u, V &v) {
  gn(u);
  gn(v);
}
template <class U, class V, class W>
inline void gn(U &u, V &v, W &w) {
  gn(u);
  gn(v, w);
}
template <class T>
void println(T &x) {
  print(x);
  putchar('\n');
}
template <class T>
void printsp(T &x) {
  print(x);
  putchar(' ');
}
template <class U, class V>
inline void print(U &u, V &v) {
  printsp(u);
  println(v);
}
template <class U, class V, class W>
inline void print(U &u, V &v, W &w) {
  printsp(u);
  print(v, w);
}
int power(int a, int b, int m = 1000000007, int ans = 1) {
  for (; b; a = (long long)a * a % 1000000007, b >>= 1)
    if (b & 1) ans = (long long)ans * a % 1000000007;
  return ans;
}
int main() {
  int x, hh, mm;
  gn(x);
  gn(hh, mm);
  int cnt = 0;
  while (true) {
    if (hh % 10 == 7 || mm % 10 == 7) break;
    if (mm != 0 && mm / 10 == 7) break;
    if (mm < x) {
      mm = mm - x + 60;
      if (hh == 0)
        hh = hh - 1 + 24;
      else
        hh--;
      cnt++;
    } else {
      mm = mm - x;
      cnt++;
    }
  }
  printf("%d\n", cnt);
  return 0;
}
