#include using namespace std; typedef pair II; typedef vector< II > VII; typedef vector VI; typedef vector< VI > VVI; typedef long long int LL; #define PB push_back #define MP make_pair #define F first #define S second #define SZ(a) (int)(a.size()) #define ALL(a) a.begin(),a.end() #define SET(a,b) memset(a,b,sizeof(a)) #define si(n) scanf("%d",&n) #define dout(n) printf("%d\n",n) #define sll(n) scanf("%lld",&n) #define lldout(n) printf("%lld\n",n) #define fast_io ios_base::sync_with_stdio(false);cin.tie(NULL) #define TRACE #ifdef TRACE #define trace(...) __f(#__VA_ARGS__, __VA_ARGS__) template void __f(const char* name, Arg1&& arg1){ cerr << name << " : " << arg1 << std::endl; } template void __f(const char* names, Arg1&& arg1, Args&&... args){ const char* comma = strchr(names + 1, ',');cerr.write(names, comma - names) << " : " << arg1<<" | ";__f(comma+1, args...); } #else #define trace(...) #endif //FILE *fin = freopen("in","r",stdin); //FILE *fout = freopen("out","w",stdout); const int N = int(2e5)+1; const int M = int(2e5)+1; const int LOGN = 20; VI g[N],tree[N],st;//graph in edge-list form. N should be 2*N int U[M],V[M],low[N],ord[N],sz[N],depth[N],col[N],C,T,compNo[N],extra[N],level[N],DP[LOGN][N]; bool isArtic[N]; int arr[N],dep[N],vis[N]; int adj(int u,int e){ return u^V[e]^U[e]; } //everything from [1,n+C] whose extra[i]=0 is part of Block-Tree //1-Based Graph Input.Everything from [1,C] is type B and [C,n+C] is type C. void dfs(int i){ low[i]=ord[i]=T++; for(int j=0;j=ord[i]){ if(ord[i]!=0||j>=1) isArtic[i] = true; ++C; while(!st.empty()){ int fi=st.back();st.pop_back(); col[fi]=C; if(fi==ei)break; } } }else if(depth[to]level[b])swap(a,b); int d = level[b]-level[a]; for(int i=0;i=0;i--) if(DP[i][a]!=DP[i][b]) a=DP[i][a],b=DP[i][b]; return DP[0][a]; } bool anc(int p,int u){ return (arr[u]>=arr[p] && dep[u]<=dep[p]); } int main() { int n,m,q; si(n);si(m);si(q); for(int i=0;ilevel[v])swap(u,v); if(sz[w]==1 && w!=LCA && w!=DP[0][LCA] && sz[DP[0][w]]>2) w = DP[0][w]; if(sz[u]==1 && u!=LCA && sz[DP[0][w]]>2) u = DP[0][u]; if(sz[v]==1 && v!=LCA && sz[DP[0][v]]>2) v = DP[0][v]; bool ok=false; ok|=anc(w,u); ok|=anc(w,v); ok&=anc(LCA,w); ok|=(sz[LCA]>2 && w==DP[0][LCA]); puts(ok?"Party":"Break-Up"); } return 0; }