#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;

int n,k,a,b,x,y,mod;

struct tim{
	int dis;
	int count;
}tim[N];


void bfs(int sa){
	
	int dx[3]={x,-y,n/2};
	
	queue<int> q;
	q.push(sa);
	tim[sa].dis=0;
	tim[sa].count=0;
	
	while(!q.empty()){
		
		int a=q.front();q.pop();
		
		for(int i=0;i<3;i++){
			int ta=(a+dx[i]-1+mod)%mod+1;
			
			if(tim[ta].dis==0&&ta!=sa&&i==2&&tim[a].count+1<=k){
				tim[ta].dis=tim[a].dis+1;
				tim[ta].count=tim[a].count+1;
				q.push(ta);
				//找到结果直接停止程序 
				if(ta==b){
					cout<<tim[ta].dis<<endl;
					exit(0);
				}
			}else if(tim[ta].dis==0&&ta!=sa&&i!=2){
				tim[ta].dis=tim[a].dis+1;
				tim[ta].count=tim[a].count;
				q.push(ta);
				//找到结果直接停止程序 
				if(ta==b){
					cout<<tim[ta].dis<<endl;
					exit(0);
				}
			}
		}
	}
	
	
}

void solve(){
	
	bfs(a);
	
	//没找到结果直接输出-1 
	cout<<-1<<endl;
	
}

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	
	cin>>n>>k>>a>>b>>x>>y;
	if(a==b){
		cout<<0<<endl;
		return 0;
	}
	mod=n;
	
	solve();

    return 0;
}