()
| 6 | |
| 7 | |
| 8 | def main(): |
| 9 | t=1 |
| 10 | for i in range(t): |
| 11 | i=raw_input().split() |
| 12 | n=int(i[0]) # length of the plot |
| 13 | m=int(i[1]) # width of the plot |
| 14 | a=int(i[2]) # size of the block that are used to create plot |
| 15 | st=0 |
| 16 | |
| 17 | # find out out many complete blocks can be fit in the plot |
| 18 | if n%a==0: |
| 19 | nst=n/a |
| 20 | else: |
| 21 | nst=int(n/a)+1 |
| 22 | |
| 23 | # then find out how many blocks can be added to the remaining area of the plot (it is fine if blocks are using more area than required, as given in the question) |
| 24 | if m%a==0: |
| 25 | mst=m/a |
| 26 | else: |
| 27 | mst=int(m/a)+1 |
| 28 | st=nst*mst |
| 29 | print st |
| 30 | main() |