A tag is used to identify which of the memory block is currently present in a cache block. So, here you have to fin the no. of distinct memory block (a block is the size of cache line- 16 bytes in this question) which can be mapped to a given cache line. Say, this is x- now we need $\lg x$ tag bits as we store tag in binary. Now, this tag is needed for each cache line- so multiply by the total no. of cache lines to get the total tag storage needed in bits.
Don't look below until you get an answer.
Calculations will be as follows:
No. of memory blocks = $\frac{2^{29}}{2^{4}} = 2^{25}$.
No. of memory blocks which can be mapped to a given cache line = Total no. of blocks/No. of cache lines (As direct mapping is used)
$ = \frac{2^{25}}{2^9} = 2^{16}$.
So, we need 16 tag bits for each cache line.
So, total tag storage required $= 2^9 \times 16 = 2^{13} $bits.