Chef and Big Soccer

All submissions for this problem are available.
Read problems statements in Mandarin Chinese, Russian and Vietnamese as well.
Chef is a big fan of soccer! He loves soccer so much, that he even invented soccer for his pet dogs! Here are the rules of the game:
 There are N dogs numerated from 1 to N stay in a line, so dogs i and i + 1 are adjacent.
 There is a ball which dogs will pass around. Initially, dog s has the ball.
 A dog with ball can pass it to another dog. If the current passstrength of dog is x, then it can pass the ball to either dog i  x or dog i + x (provided such dog/s exist).
To make it even more exciting, Chef created an array A of M positive integers denoting pass strengths. In ith pass, current passstrength of the dog making the pass will be given by A_{i}.
Chef asks dogs to execute these M passes one by one. As stated before, dog s will make the first pass, then some other dog and so on till M passes.
Dogs quickly found out that there can be lot of possible sequences of passes which will end up with a dog having the ball. Now each dog asks your help in finding number of different pass sequences which result in this dog ending up ball. Two pass sequences are considered different if after some number of passes they lead the ball to different dogs. As the answer could be quite large, output it modulo 10^{9} + 7 (1000000007).
Input
 The first line of the input contains an integer T denoting the number of test cases. The description of T test cases follows.
 The first line of each test case contains three space separated integers N, M, s denoting the number of dogs, number of pass strengths and number of dog having a ball at the beginning.
 The second line contains M spaceseparated integers A_{1}, A_{2}, ..., A_{M} denoting the pass strengths.
Output
 For each test case, output a single line containing N spaceseparated integers, where ith integer should be equal to number of different valid pass sequences leading the ball to ith dog modulo 10^{9} + 7.
Constraints
 1 ≤ T ≤ 10
 1 ≤ N, M ≤ 10^3
 1 ≤ s ≤ N
 1 ≤ A_{i} ≤ 10^3
Subtasks
 Subtask #1 (30 points) : N, M ≤ 10
 Subtask #2 (70 points) : Original constraints
Example
Input: 3 3 2 2 1 2 3 3 3 1 1 1 3 1 1 3 Output: 1 0 1 0 2 0 0 0 0
Explanation
Example case 1.
Possible sequence for dog 1 is 2>3>1.
Possible sequence for dog 3 is 2>1>3.
Example case 2.
Possible sequences for dog 2 are 3>2>1>2 and 3>2>3>2.
Example case 3.
There are no valid sequences for such input.
Author:  berezin 
Tester:  kevinsogo 
Editorial  http://discuss.codechef.com/problems/CHEFSOC2 
Tags  berezin, dynamicprogramming, easy, may16 
Date Added:  12042016 
Time Limit:  1 sec 
Source Limit:  50000 Bytes 
Languages:  C, CPP14, JAVA, PYTH, PYTH 3.5, PYPY, CS2, PAS fpc, PAS gpc, RUBY, PHP, GO, NODEJS, HASK, SCALA, D, PERL, FORT, WSPC, ADA, CAML, ICK, BF, ASM, CLPS, PRLG, ICON, SCM qobi, PIKE, ST, NICE, LUA, BASH, NEM, LISP sbcl, LISP clisp, SCM guile, JS, ERL, TCL, PERL6, TEXT, SCM chicken, CLOJ, FS 
Comments
 Please login at the top to post a comment.
SUCCESSFUL SUBMISSIONS
Fetching successful submissions
HELP
If you are still having problems, see a sample solution here. 