# 问题描述

## Problem Description

Given a sequence 1,2,3,......N, your job is to calculate all the possible sub-sequences that the sum of the sub-sequence is M.

## Input

Input contains multiple test cases. each case contains two integers N, M( 1 <= N, M <= 1000000000).input ends with N = M = 0.

## Output

For each test case, print all the possible sub-sequence that its sum is M.The format is show in the sample below.print a blank line after each test case.

## Sample Input

``````20 10
50 30
0 0
``````

## Sample Output

``````[1,4]
[10,10]

[4,8]
[6,9]
[9,11]
[30,30]
``````

# 问题分析

## Algorithm Analyse

``````∵ 2n = [(n-1) + (n+1)] = [(n-2) + (n+2)] = ... = [1 + (2n-1)]
∴ (n-m) + (n-m+1) + ... + n-1 + n + n+1 + ... + (n+m-1) + (n+m) = (2m+1) × n
∵ 2m+1是奇数
∴ 如果X能被2m+1整除(即能被分割成2m+1份)，且n = X / (2m+1)
则X = (n-m) + (n-m+1) + ... + n-1 + n + n+1 + ... + (n+m-1) + (n+m)
``````

``````∵ n + (n+1) = (n-1) + (n+2) = ... = 1 + 2n
∴ (n-m) + (n-m+1) + ... + (n+m+1) = (m+1)(2n+1)
∴ 如果X能被(2n+1)整除，且X / (2m+2) = n
则X = (n-m) + (n-m+1) + ... + (n+m+1)
``````

# 参考源码

redraiment使用Emacs Lisp批量迁移《HDU 2050-2059》