#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <complex>
#include <queue>
#include <cmath>
#include <bitset>
#include <set>
#include <map>
#include <vector>
#include <stack>
#include <assert.h>
#include <ostream>
#include <istream>
#include <iomanip>
#include <unordered_map>
using namespace std;

bool solve(long long k, long long l, long long r, long long x, long long y, long long t) {
    if (t == 0) return true;
    // x < y
	if (k + y <= r) {
	    // k + p * (y - x) + y <= r
		long long p = (r - y - k) / (y - x);
		if (t <= p) return true;
		t -= p;
		return solve(k + p * (y - x) + y - x, l, r, x, y, t - 1);
	}
    // k - p * x >= l
	if (k - x < l) return false;
	long long p = (k - l) / x;
	return solve(k - p * x, l, r, x, y, t - p);

}



int main()
{
	long long k, l, r, t, x, y;
	cin >> k >> l >> r >> t >> x >> y;
	for (int i = 1; i <= t && i <= 10000000; i++) {
	    if (k + y <= r) k += y;
	    k -= x;
	    if (k < l) {
		    printf("No\n");
		    return 0;
		}
	}

	if (t <= 10000000 || y == x) {
        printf("Yes\n");	
		return 0;
	}

    t -= 10000000;

	if (y > x) {
        if (r - l < x) {
			printf("No\n");
			return 0;
		}

		if (r - l >= y + x) {
			printf("Yes\n");
			return 0;
		}

		if (k + y <= r) {
			printf("Yes\n");
        	return 0;
		}

		if (solve(k, l, r, x, y, t)) printf("Yes\n");
		else printf("No\n");
		return 0;
	}

	if (k + y > r) {
		if (k - x < l) {
			printf("No\n");
			return 0;
		}
		k -= x;
		t--;
	}

	x -= y;
	if (t == 0) {
		printf("Yes\n");
		return 0;
	}

	if ((k - l) / x >= t) printf("Yes\n");
	else printf("No\n");

	return 0;
}
