30. solved quickly, somewhat brutish