First implemetation.
Refine algorithm.
Optimize algorithm.
Update README.