/*等差数列求和公式*/
#include <iostream>
#include <cstring>#include <string>
#include <cstdio>
#include <algorithm>
#include <stack>
#include <math.h>
#include<iostream>
using namespace std;
int main()
{
long long int m, n;
while (cin >> m >> n,m||n)
{
for (int i = sqrt(2*n); i > 0; i--) // 当和是m时 实际最多的位数(由等差数列求和公式推)
{
long long int a = n / i - (i - 1) / 2;
if((2*a+i-1)*i==2*n) cout << "[" << a << "," << a + i - 1 << "]" << endl;
}
cout << endl;
}
return 0;
}