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