#JavaScript (ES6), 109 bytes
This is really just a port of Delfad0r's great answer, implemented as nested recursive functions.
Takes input as (n)(m).
n=>m=>(g=i=>i?[...g(i-1),(h=k=>k&&h(k-1)-(b=(y,x=k)=>y?x*b(y-1,x-1)/y:i-k&1||-1)(k,i)*b(n)*b(m))(i)]:[])(n+m) ###How?
The function \$b(y,x)\$ computes:
$$-(-1)^{i-k}{x\choose y}$$
It's slightly shorter to return \$-(-1)^{i-k}\$ as the last iteration of this function than processing it separately. Because we compute the product of three binomial coefficients, the signs of the first two of them are simply cancelling each other out.
The function \$h()\$ is used to compute:
$$\sum_{k=1}^{i}-b(k,i)\times b(n,k)\times b(m,k)\\ =\sum_{k=1}^{i}{(-1)^{i-k}{i\choose k}{k\choose n}{k\choose m}}$$
And the function \$g()\$ is used to compute each term \$a_i\$ for \$1\le i \le n+m\$.