#include <bits/stdc++.h>
const long long mod = 1000000;
using namespace std;
int main() {
  long long m, h1, a1, x1, y1, h2, a2, x2, y2;
  cin >> m >> h1 >> a1 >> x1 >> y1 >> h2 >> a2 >> x2 >> y2;
  long long i;
  bool flag = 0;
  long long i1, i2, j1, j2;
  j1 = j2 = 0;
  for (i = 0; i < mod; i++) {
    h1 = (x1 * h1 + y1) % m;
    if (h1 == a1) {
      flag = 1;
      i1 = i + 1;
      break;
    }
  }
  if (!flag) {
    cout << -1 << endl;
    return 0;
  }
  for (i = 0; i < mod; i++) {
    h1 = (x1 * h1 + y1) % m;
    if (h1 == a1) {
      j1 = i + 1;
      break;
    }
  }
  flag = 0;
  for (i = 0; i < mod; i++) {
    h2 = (x2 * h2 + y2) % m;
    if (h2 == a2) {
      flag = 1;
      i2 = i + 1;
      break;
    }
  }
  if (!flag) {
    cout << -1 << endl;
    return 0;
  }
  for (i = 0; i < mod; i++) {
    h2 = (x2 * h2 + y2) % m;
    if (h2 == a2) {
      j2 = i + 1;
      break;
    }
  }
  flag = 0;
  if (i1 == i2) {
    cout << i1 << endl;
    return 0;
  } else {
    if (i1 < i2) {
      for (i = 0; i < mod; i++) {
        i1 = i1 + j1;
        if (j2 == 0 && i1 == i2) {
          flag = 1;
          cout << i1 << endl;
          break;
        }
        if (j2 != 0 && (i1 - i2 >= 0) && (i1 - i2) % j2 == 0) {
          flag = 1;
          cout << i1 << endl;
          break;
        }
      }
      if (!flag) cout << -1 << endl;
    } else {
      for (i = 0; i < mod; i++) {
        i2 = i2 + j2;
        if (j1 == 0 && i1 == i2) {
          flag = 1;
          cout << i2 << endl;
          break;
        }
        if (j1 != 0 && (i2 - i1 >= 0) && (i2 - i1) % j1 == 0) {
          flag = 1;
          cout << i2 << endl;
          break;
        }
      }
      if (!flag) cout << -1 << endl;
    }
  }
  return 0;
}
