#include <bits/stdc++.h>
using namespace std;
template <class T>
T sq(T n) {
  return n * n;
}
template <class T>
T getabs(T n) {
  return n < 0 ? -n : n;
}
template <class T>
T getmax(T a, T b) {
  return (a > b ? a : b);
}
template <class T>
T getmin(T a, T b) {
  return (a < b ? a : b);
}
template <class T>
void setmax(T &a, T b) {
  if (a < b) a = b;
}
template <class T>
void setmin(T &a, T b) {
  if (a > b) a = b;
}
template <class T>
T gcd(T a, T b) {
  return (b != 0 ? gcd<T>(b, a % b) : a);
}
template <class T>
T lcm(T a, T b) {
  return ((a * b) / gcd(a, b));
}
template <class T>
T power(T n, T p) {
  if (p == 0) return 1;
  return ((p == 1) ? n : (n * power(n, p - 1)));
}
int main(int argc, const char *argv[]) {
  int x, t, a, b, da, db;
  int frst[301], scnd[301];
  while (cin >> x >> t >> a >> b >> da >> db) {
    bool yes = false;
    memset((frst), 0, sizeof(frst));
    memset((scnd), 0, sizeof(scnd));
    frst[0] = a;
    scnd[0] = b;
    for (__typeof(t - 1) i = 0; i <= (t - 1); i++) {
      if (a - i * da >= 0) frst[i] = a - i * da;
      if (b - i * db >= 0) scnd[i] = b - i * db;
    }
    for (__typeof(t) i = 0; i <= (t); i++) {
      for (__typeof(t) j = 0; j <= (t); j++) {
        if (frst[i] + scnd[j] == x) {
          yes = true;
          break;
        }
      }
      if (yes) break;
    }
    if (yes)
      printf("YES\n");
    else if (x == 0 && !yes)
      printf("YES\n");
    else
      printf("NO\n");
  }
  return 0;
}
