#include <iostream>
#include <cmath>
using namespace std;
int main(int ac, char *av[])
{
int step;
while (cin >> step, step)
{
// 确定步数数字所在的列或者行。
//ceil 返回大于或者等于指定表达式的最小整数
int column = (int)ceil(sqrt(step));
// 确定对角线上的数字:column * (column - 1) + 1。
int diagonal = column * (column - 1) + 1;
// 根据对角线数字以及步数数字与对角线数字的关系来确定位置。
if (column & 1)
{
if (step >= diagonal)
cout << (column - (step - diagonal)) << " " << column << endl;
else
cout << column << " " << (column - (diagonal - step)) << endl;
}
else
{
if (step >= diagonal)
cout << column << " " << (column - (step - diagonal)) << endl;
else
cout << (column - (diagonal - step)) << " " << column << endl;
}
}
return 0;
}