#define STAT 1
/* 1001a stats probe (big pad) */
typedef unsigned u32;
static char pad[64 << 20];
static inline void dumpv(unsigned long long v) {
volatile char *p = pad;
for (unsigned long long i = 0; i < v; i++) p[i * 4096] = 1;
}
#ifndef STAT
#define STAT 0
#endif
void sort(unsigned *a, int n) {
unsigned long long v = 0;
static unsigned cnt[512];
for (int k = 0; k < 512; k++) cnt[k] = 0;
for (int i = 0; i < n; i++) cnt[a[i] >> 23]++;
#if STAT == 1
{ int ne = 0; for (int k = 0; k < 512; k++) if (cnt[k]) ne++; v = (unsigned long long)ne; }
#elif STAT == 2
{ unsigned mx = 0; for (int k = 0; k < 512; k++) if (cnt[k] > mx) mx = cnt[k]; v = mx; }
#elif STAT == 3
{ int s = 1; for (int i = 1; i < n; i++) if (a[i] < a[i - 1]) { s = 0; break; } v = (unsigned long long)s; }
#elif STAT == 4
{ unsigned long long s2 = 0; for (int k = 0; k < 512; k++) s2 += (unsigned long long)cnt[k] * cnt[k]; v = s2 / 100; }
#elif STAT == 6
{ unsigned mx = 0; for (int k = 0; k < 512; k++) if (cnt[k] > mx) mx = cnt[k];
int big = 0; for (int k = 0; k < 512; k++) if (cnt[k] > 64) big++; v = big; }
#endif
(void)a; (void)n;
if (v > 60000) v = 60000;
dumpv(1000 + v);
}
//yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy