just discovered that "cout << endl" is 20x slower than "cout << '\n'"