#include<map>
#include<set>
#include<cmath>
#include<deque>
#include<queue>
#include<stack>
#include<string>
#include<bitset>
#include<cstdio>
#include<vector>
#include<iomanip>
#include<cstring>
#include<sstream>
#include<iostream>
#include<algorithm>
#include<unordered_map>
//#include<bits/stdc++.h>
#define fi first
#define se second
#define eps 1e-8
#define ll long long
#define ull unsigned long long
#define pb push_back
#define inf 0x3f3f3f3f
#define INF 0x3f3f3f3f3f3f3f3f
#define P pair<ll, ll>
#define pi acos(-1)
#define lson l,mid,rt*2
#define rson mid+1,r,rt*2+1
#define lowbit(x) (x&(-x))
#define SZ(x) ((ll)(x).size())
#define met(a,x) memset(a,x,sizeof(a))
#define openin(x) freopen(x, "r", stdin)
#define openout(x) freopen(x, "w",stdout)
#define rep(i,a,b) for(int i = a;i <= b;i++)
#define bep(i,a,b) for(int i = a;i >= b;i--)
#define ios() ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
using namespace std;
ll mod = 998244353;
ll gcd(ll a, ll b) { return b == 0 ? a : gcd(b, a % b); }
ll lcm(ll a, ll b) { return a * b / gcd(a, b); }
int days[15] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
int is_leapyear(int y) {return y % 400 == 0 || (y % 4 == 0 && y % 100 != 0);}
int dx[8] = {0,0,1,-1,-1,-1,1,1};
int dy[8] = {1,-1,0,0,-1,1,-1,1};
inline ll read() {
    ll x = 0, sign = 1; char ch = getchar();
    for (; !isdigit(ch); ch = getchar()) if (ch == '-') sign = -1;
    for (; isdigit(ch); ch = getchar()) x = x * 10 + ch - '0';
    return sign * x;
}
inline void write(ll x){
    char r[30];
    int t = 0;
    if(x < 0){
        x = -x;
        putchar('-');
    }
    do{
        r[t++] = x % 10 + '0';
        x /= 10;
    }while(x);
    while(t)putchar(r[--t]);
}
inline void writesp(ll x){write(x);putchar(' ');}
inline void writeln(ll x){write(x);putchar('\n');}
ll qpow(ll a, ll b) {
    ll ans = 1;
    while (b) {
        if (b & 1)ans = ans * a % mod;
        a = a * a % mod;
        b >>= 1;
    }
    return ans;
}
map<ll,int>vis;

int main(){
    ll k,l,r,t,x,y;
    cin >> k >> l >> r >> t >> x >> y;
    if(y <= x){
        if(k + y > r)k -= x,t--;
        if(k < l)return 0 * puts("No");
        if(x == y)return cout << "Yes" << endl,0;
        if((k-l) / (x-y) >= t)puts("Yes");
        else puts("No");
    }
    else{
        k -= l;r -= l;
        //[0,r]
        while(1){
            if(vis.count(k % x))return 0 * puts("Yes");
            vis[k % x] = 1;
            ll canMove = min(t,k / x);
            k -= canMove * x;
            t -= canMove;
            if(t == 0)return 0 * puts("Yes");
            if(k + y > r)break;
            k += y;
            k -= x;
            t--;
        }
        return 0 * puts("No");

    }
    return 0;
}
