# [UOJ UNR#1]奇怪的线段树

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<vector>
#define S 0
#define T 16001
#define SS 16002
#define TT 16003
#define MN 16003
#define INF 2000000000
using namespace std;
{
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
int in[MN+5],L[MN+5],R[MN+5],s[MN+5],ss[MN+5],fa[MN+5],top;
struct edge{int to,next,w;}e[MN*100+5];
vector<int> v[MN+5];

inline void ins(int f,int t,int w)
{
}

int Build(int l,int r)
{
if(l!=r)
{
fa[L[x]=Build(l,mid)]=x;
fa[R[x]=Build(mid+1,r)]=x;
ss[x]|=ss[L[x]]|ss[R[x]];
if(!s[x]&&ss[x]){puts("OwO");exit(0);}
ins(x,L[x],INF);
}
if(ss[x]|s[x]) ins(x,x+m,INF);
if(s[x]&&!ss[x]) ins(S,x,INF),--in[x],++in[x+m],ins(x+m,T,INF);
ss[x]|=s[x];return x;
}

bool bfs()
{
memset(d,0,sizeof(d));int i,j;
for(d[q[top=i=1]=SS]=1;i<=top;++i)
if(e[j].w&&!d[e[j].to]) d[q[++top]=e[j].to]=d[q[i]]+1;
return d[TT];
}

int dfs(int x,int f)
{
if(x==TT) return f;int used=0;
for(int&i=c[x];i;i=e[i].next)
if(e[i].w&&d[e[i].to]==d[x]+1)
{
int w=dfs(e[i].to,min(f-used,e[i].w));
used+=w;e[i].w-=w;e[i^1].w+=w;
if(used==f) return f;
}
return d[x]=-1,used;
}

int main()
{
}