Haskell, 7070 69 bytes
[x|x<-filter(0#)[0..],0#x]
a#x=a!divMod x 10
a!(d,m)|d<1=a==m|c<-a-m+1=m<=a&&c#d
- k is an infinite sequence
Thanks to @Unrelated String for saving 1 by using filter instead of list comprehension.
k is an infinite sequence
We start from the end checking if the last digit(m) doesn't consume more groups than available a
a-m>=0
Then we remove m
groups and add 1 a=a-m+1 and move backwards.
At the end we must have exactly one group a-m+1==1
3010200 m a a=a-m+1 0 0 1 0 1 2 2 2 1 0 1 2 1 2 2 0 2 3 3 3 1