The main purpose of this book is to provide help in learning existing techniques in combinatorics. The most effective way of learning such techniques is to solve exercises and problems. This book presents all the material in the form of problems and series of problems. In the second part, a hint is given for each exercise, which contains the main idea necessary for the solution, but allows the reader to practice the techniques by completing the proof. In the third part, a full solution is provided for each problem.