problem #18
problem #67