/*
TASK:zigzag
LANG:C++
*/

#include<iostream>
#include<cstdlib>
using namespace std;
#define MAXN 5000
    int a[MAXN][MAXN],i,j,k,l,m,n;
    
int create1(int i,int j);
int create2(int i,int j);
int main(void)
{
	
    cin >> n >> k;
    a[0][0]=1;
    l=1;
    create1(0,0);
    l=n*n;
	create2(n-1,n-1);
    for(i=0;i<n;i++)
    	for(j=0;j<n;j++)
    		if(a[i][j]==k)
    			cout << i+1 << " " << j+1;
    cout << endl;
    system("Pause");
}

int create1(int i,int j)
{
	a[i][j]=l;
	l++;
	if((i+j)%2==0 && i>0 && j<n-1)
		create1(i-1,j+1);
	else if((i+j)%2==0 && i>0 && j>=n-1)
		create1(i-1,j);
	else if((i+j)%2==0 && i<=0 && j<n-1)
		create1(i,j+1);
	else if((i+j)%2==0 && i<=0 && j>=n-1)
		return 0;
	else if((i+j)%2!=0 && i<n-1 && j>0)
		create1(i+1,j-1);
	else if((i+j)%2!=0 && i>=n-1 && j>0)
		create1(i,j-1);
	else if((i+j)%2!=0 && i<n-1 && j<=0)
		create1(i+1,j);
	else if((i+j)%2!=0 && i>=n-1 && j<=0)
		return 0;
}

int create2(int i,int j)
{
	a[i][j]=l;
	l--;
	if((i+j)%2==0 && i<n-1 && j>0)
		create2(i+1,j-1);
	else if((i+j)%2==0 && i>=n-1 && j>0)
		create2(i,j-1);
	else if((i+j)%2==0 && i<n-1 && j<=0)
		create2(i+1,j);
	else if((i+j)%2==0 && i>=n-1 && j<=0)
		return 0;
	else if((i+j)%2!=0 && i>0 && j<n-1)
		create2(i-1,j+1);
	else if((i+j)%2!=0 && i<=0 && j<n-1)
		create2(i,j+1);
	else if((i+j)%2!=0 && i>0 && j>=n-1)
		create2(i-1,j);
	else if((i+j)%2!=0 && i<=0 && j>=n-1)
		return 0;
}
