Algorithm Part I