#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
typedef pair<int, int> PII;
const int N = 1e6 + 10;
int n;
vector<PII> p;
int main()
{
cin >> n;
for (int i = sqrt(n); i <= n; i ++ )
{//枚举每个右端点
int l = 1, r = i;
while (l < r)//二分每个左端点
{
int mid = l + r + 1 >> 1;
if ((mid + i) * (i - mid + 1) / 2 < n) r = mid - 1;
else l = mid;
}
if ((l + i) * (i - l + 1) / 2 == n && l != i)
p.push_back({l, i});
}
sort(p.begin(), p.end());
for (auto i : p) cout << i.first << ' ' << i.second << endl;
return 0;
}