#include "migrations.h"
#include <bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
#define ll long long
using namespace std;
const int N=10005;
int dist[N];
int ldist=0,ldv,fur,c=0,pos=-1;
vector<int> sk;
int send_message(int n, int i, int Pi) {
dist[i]=dist[Pi]+1;
if(dist[i]>ldist){
ldist=dist[i];
ldv=i;
}
if(i==n-12){
fur=ldv;
int temp=fur;
for(int i=0; i<4; i++){
int last=temp%10;
sk.pb(min(3,max(0,last)));
last-=3;
sk.pb(min(3,max(0,last)));
last-=3;
sk.pb(min(3,max(0,last)));
temp/=10;
}
}
if(i>=n-12){
if(ldv!=fur || sk.size()==0){
if(ldv==i) return 4;
return 0;
}
pos++;
return sk[pos];
}
return 0;
}
pair<int, int> longest_path(vector<int> s) {
int n=s.size();
int v=-1;
for(int i=max(0,n-12); i<n; i++){
if(s[i]==4) v=i;
}
if(v!=-1) return {0,v};
int p1=0,p2=0,p3=0,p4=0;
int p=n-1;
while(p>=0){
if(p>=n-3) p1+=s[p];
else if(p>=n-6) p2+=s[p];
else if(p>=n-9) p3+=s[p];
else p4+=s[p];
p--;
}
v=p1*1000+p2*100*p3*10+p4;
return {0,v};
}