#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;
}