samples = list(range(10))


rule all:
    input:
        "test.out"


rule a:
    output:
        "a/{sample}.out"
    shell:
        "touch {output}"


rule b:
    input:
        "a/{sample}.out"
    output:
        "b/{sample}.out"
    shell:
        "touch {output}"


rule c:
    input:
        expand("b/{sample}.out", sample=samples)
    output:
        "test.out"
    group: 1
    shell:
        "touch {output}"
