#include<iostream>
using namespace std;
#include<iostream>
using namespace std;
struct node{
int next[500000],val[500000],tot=0,head;
int x;
void insert(int pre,int x)
{
tot++;
val[tot]=x;
next[tot]=next[pre];
next[pre]=tot;
}
void del(int pre)
{
next[pre]=next[next[pre]];
}
void created(int a[],int n)
{
val[tot]=0;
next[tot]=-1;
for(int i=0;i<n;i++)
{
insert(tot,a[i]);
}
}
void output()
{
int p=0;
while(next[p]!=-1)
{
p=next[p];
cout<<val[p]<<endl;
}
}
void outnum(int pre)
{
cout<<val[next[pre]]<<endl;
}
};
node a;
int n,m;
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
a.insert(i-1,i);
}
int cnt=1,ans;
for(int i=1;i<=m;i++)
{
cnt+=(i*i%5*i%5)%5+1;
if(cnt>n)
{
cnt=(i*i%5*i%5)%5+1;
}
a.del(cnt-1);
if(a.next[cnt-1]==0)
{
cnt--;
}
else
{
cnt++;
}
}
cout<<cnt-1;
return 0;
}