This solution is craeted for personal homework and personal knowlege base purpose.