A block can hold either 5 data records, or 11 block pointers(for internal node) or 10 record pointers(for leaf node)
Blocking factor(number of records per block)= total number of records/number of records per block = 1000/5= 200
So 200 blocks are needed to store the data records.
now first level index blocks= ceil(200/10)=20 (since each record pointer in the leaf points to one data block as sparse indexing is used)
Second level index blocks= ceil(20/11)=2
Third level index blocks=ceil(2/11)=1
SO number of blocks needed= 200(for data file)+20(first level index)+2(second level index)+1(third level index i.e.root)=223
hence 223 blocks are required in total.