#include <bits/stdc++.h>
int main() {
  long long m, h1, a1, x1, y1, h2, a2, x2, y2, i, j, a, b, c, d, e;
  scanf("%I64d", &m);
  scanf("%I64d", &h1);
  scanf("%I64d", &a1);
  scanf("%I64d", &x1);
  scanf("%I64d", &y1);
  scanf("%I64d", &h2);
  scanf("%I64d", &a2);
  scanf("%I64d", &x2);
  scanf("%I64d", &y2);
  bool p[m];
  for (i = 0; i < m; i++) p[i] = 0;
  for (i = 0; i < m; i++) {
    h1 = (x1 * h1 + y1) % m;
    if (h1 == a1) break;
    if (p[h1] == 0)
      p[h1] = 1;
    else
      i = m;
  }
  for (j = 0; j < m; j++) p[j] = 0;
  for (j = 0; j < m; j++) {
    h2 = (x2 * h2 + y2) % m;
    if (h2 == a2) break;
    if (p[h2] == 0)
      p[h2] = 1;
    else
      j = m;
  }
  i++;
  j++;
  if (i == m + 2 || j == m + 2)
    printf("-1\n");
  else {
    a = i;
    c = j;
    for (h1 = a1, i = 1; i < m + 1; i++) {
      h1 = (x1 * h1 + y1) % m;
      if (h1 == a1) break;
    }
    a1 = i;
    for (h2 = a2, j = 1; j < m + 1; j++) {
      h2 = (x2 * h2 + y2) % m;
      if (h2 == a2) break;
    }
    a2 = j;
    e = m;
    if (a > c) {
      m = a - c;
      d = c;
      c = a;
      b = i;
      a = j;
    } else {
      m = c - a;
      d = a;
      c = c;
      b = j;
      a = i;
    }
    for (i = 0; i < a; i++) {
      if ((m + b * i) % a == 0) break;
    }
    m = m + b * i + d;
    if (m == c || m == d)
      ;
    else if (a1 == e + 1 || a2 == e + 1 || i == a)
      m = -1;
    printf("%I64d\n", m);
  }
  return 0;
}
