#include <iostream>
inline void swap(int& a, int& b)
{
  int temp = a;
  a = b;
  b = temp;
}
void a(int* data, int N)
{
  for (int j = 0; j < N - 1; ++j)
  {
    if (data[j] > data[j+1])
      swap(data[j], data[j+1]);
  }
  if (N > 2)
    a(data, N-1);
}
/*************************************************************
 * Hinweis: Die Struktur koennte ungefaehr so aussehen
 * IntBubbleSort<N>:
 *	IntBubbleSortLoop<N-1,0>  IntBubbleSort<N-1>
 * IntBubbleSort<1>:
 *	(nil)
 * IntBubbleSortLoop<I,J>:
 *	IntSwap<J,J+1> IntBubbleSortLoop<(J+2<=I) ? I : 0, (J+2<=I) ? (J+1) : 0>
 * IntBubbleSortLoop<0,0>:
 *	(nil)
 * IntSwap<I,J>:
 *	if (data[I] > data[J]) swap(data[I],data[J]);
 ********************************************************************/

