1domain: "[M, N] -> { S3[i0, i1] : i0 >= 1 and i0 <= M and i1 >= 1 and i1 <= -1 + N; S1[i0] : i0 >= 1 and i0 <= M; S2[i0, i1] : i0 >= 1 and i0 <= M and i1 >= 2 and i1 <= N }"
2child:
3  context: "[M, N] -> { [] : M >= 1 and N >= 1 }"
4  child:
5    sequence:
6    - filter: "[M, N] -> { S1[i0] }"
7      child:
8        schedule: "[M, N] -> [{ S1[i0] -> [(i0)] }]"
9        options: "[M, N] -> { separate[i0] }"
10    - filter: "[M, N] -> { S2[i0, i1] }"
11      child:
12        schedule: "[M, N] -> [{ S2[i0, i1] -> [(i0)] }]"
13        options: "[M, N] -> { separate[i0] }"
14        child:
15          schedule: "[M, N] -> [{ S2[i0, i1] -> [(i1)] }]"
16          options: "[M, N] -> { separate[i0] }"
17    - filter: "[M, N] -> { S3[i0, i1] }"
18      child:
19        schedule: "[M, N] -> [{ S3[i0, i1] -> [(i0)] }]"
20        options: "[M, N] -> { separate[i0] }"
21        child:
22          schedule: "[M, N] -> [{ S3[i0, i1] -> [(i1)] }]"
23          options: "[M, N] -> { separate[i0] }"
24