编程题
### 问题描述
因为长期钻研算法, 无暇顾及个人问题,BUAA ACM/ICPC 训练小组的帅哥们大部分都是单身。
某天,他们在机房商量一个绝妙的计划“一卡通大冒险”。
这个计划是由 wf 最先提出来的,计划的内容是,把自己的联系方式写在校园一卡通的背面,然后故意将自己的卡“遗失”在某处(如水房,TD,食堂,主 M。。。。)他们希望能有 MM 看到他们遗失卡,能主动跟他们联系,这样就有机会请 MM 吃饭了。
他们决定将自己的一卡通夹在基本相同的书里,然后再将书遗失到校园的各个角落。正当大家为这个绝妙的计划叫好时,大家想到一个问题。
很明显,如果只有一张一卡通,那么只有一种方法,即,将其夹入一本书中。当有两张一卡通时,就有了两种选择,即,将两张一卡通夹在一本书里,或者分开夹在不同的书里。
当有三张一卡通时,他们就有了 $5$ 种选择,即:`{{A},{B},{C}}`,`{{A,B},{C}}`,`{{B,C},{A}}`,`{{A,C},{B}}`,`{{A,B,C}}`,于是,这个邪恶计划的组织者 wf 希望了解,如果 ACM 训练对里有 $n$ 位帅哥(即有 $N$ 张一卡通),那么要把这些一卡通夹到书里有多少种不同的方法。
### 输入格式
包含多组数据,第一行为 $n(1\le n\le 5\times 10^5)$,表示接下来有 $n$ 组数据,以下每行一个数 $x(1≤x≤2000)$,表示共有 $x$ 张一卡通。
### 输出格式
对每组数据,输出一行,不同的方法数,因为这个数可能非常大,我们只需要它除以 $1000$ 的余数。
### 输入样例
```txt
4
1
2
3
100
```
### 输出样例
```txt
1
2
5
751
```