>>279やってみた
J

z=: dyad define " 0
s=: ([+ (], (((_1:^+)*+)))) "0 0
>: |: (y,x)$((i.c)/:,(+:c)(#."0 1)|(i.y)s/(i.x))i.i.c=.x*y
)

3 z 3
1 2 6
3 5 7
4 8 9

4 z 2
1 2
3 5
4 6
7 8

3 z 5
1 2 6 7 12
3 5 8 11 13
4 9 10 14 15

1 z 8
1 2 3 4 5 6 8 7