#include <iostream>

class Buckets
{
 private:
 	int size;
 	char * buckets;
 	int calls_to_swap{};
 	int calls_to_color{};
 public: 	
 	Buckets(int N) : size{N}, buckets{new char[N]}
 	{
 		for (int i{}; i<N; i++)
 			std::cin >> buckets[i];
 	}
 	
 	void swap(int i,int j)
 	{
 		calls_to_swap++; 		
 		std::swap(buckets[i],buckets[j]);
 	}
 	
 	char color(int i)
 	{
 		calls_to_color++;
 		return buckets[i];
 	}
 	
 	void calls()
 	{
 		std::cout	<< "Calls to color:\t"	<< calls_to_color	<< std::endl
 					<< "Calls to swap:\t"	<< calls_to_swap	<< std::endl;
 	}
 	
 	void print()
 	{
 		for (int i{}; i<size;i++)
 			std::cout << buckets[i] << ' ';
 		std::cout << std::endl;
 	}
 	
 	~Buckets(){ delete[] buckets;}
};


int main() {
	
	int N;
	std::cin >> N;
	Buckets b{N};
	std::cout << "input: ";
	b.print();
	
	int red{0};	// Элементы массива у которых индекс меньше гарантировано красные
	int blue{N-1};	// Элементы массива у которых индекс больше гарантировано синие
	int i{};
	while (i<blue)
	{
		switch(b.color(i))
		{
			case 'r' : b.swap(red,i); red++; i++; break;
			case 'w' : i++; break;
			case 'b' : b.swap(blue,i); blue--; break;
		}
	}
	std::cout << "output: ";	
	b.print();
	b.calls();
	
	return 0;
}