#include <bits/stdc++.h>
#define int long long
using namespace std;
inline int read(){
	int k=0,f=1;char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){k=k*10+ch-'0';ch=getchar();}
	return k*f;
}
void write(int x){
	if(x<0)putchar('-'),x=-x;if(x>9)write(x/10);
	putchar(x%10+'0');
}
inline void writeln(int x){
	write(x);puts("");
}
const int N=1e6+10;
int k,l,r,t,x,y;
int nex[N];
signed main()
{
	k=read();l=read();r=read();t=read();x=read();y=read();
	k-=l;r-=l;
	if(x>y){
		int tt;if(y<=r-k)tt=0;
		else tt=(y-r+k-1)/x+1;
		k-=tt*x;if(k+y>r)tt++,k-=x;
		if(k<0)return puts("No")&0;
		int ks=x-y;
		int ttt=k/ks;
		if(tt+ttt<t)return puts("No")&0;
		else return puts("Yes")&0;
	}
	if(x+y<=r)return puts("Yes")&0;
	memset(nex,-1,sizeof nex);
	if(x==y){
		if(k>=x||r-k>=x)return puts("Yes")&0;
		else return puts("No")&0;
	}else{
		int ps=k/x;
		k-=ps*x;
		int T=ps;
		int jzq=y-y/x*x,qzj=y/x;
//		cout<<jzq<<' '<<qzj<<endl;
		while(1){
//			cout<<T<<' '<<k<<endl;
			if(T>=t)return puts("Yes")&0;
			if(nex[k]==-1){
				if(k+y>r)return puts("No")&0;
				nex[k]=(k+jzq)%x;
				T+=qzj;k+=jzq;
				if(k>=x){
					ps=k/x;k-=ps*x;T+=ps;
				}
			}else return puts("Yes")&0;
		}
	}
	return 0;
}