title: A fast algorithm for creating a puzzle
body: <p>I found a puzzle in <a href="http://www.puzzles.ca/wordsearch/transportation.html" rel="noreferrer">http://www.puzzles.ca/wordsearch/transportation.html</a> where one has to find word in a grid and (s)he can read words from 8 directions. The following question raised to my mind:</p>
  
  <p>We have been given a set of words. Find an algorithm which puts those words in <code>n x m</code> grid where <code>n</code> and <code>m</code> are given. Does anyone have suggestions for an algorithm to create suitable grid as the problem seems difficult if size of the grid is only just enough to fit alphabets to the grid and words overlaps each others?</p>