#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define fi first
#define se second
const ll MAXN = 30+7;
const ll INF = 1e18;
vector <vector<pair<ll,ll>>> a(MAXN);
vector <bool> ktra(MAXN,false);
vector <ll> vet(MAXN),best(MAXN);
ll tcp,u=0,ans=INF;
ll n,m,k;
void Try(ll xp){
for(auto canh:a[xp]){
ll v=canh.fi, w=canh.se;
if(!ktra[v]){
ktra[v]=true;
u++; vet[u]=v; tcp+=w;
Try(v);
ktra[v]=false;
u--;
tcp-=w;
}
else{
if(v==k && u+1==n){
if(ans>tcp+w){
ans=tcp+w;
for(ll i=0 ; i<=u ; i++) best[i]=vet[i];
best[u+1]=k;
}
}
}
}
}
int main(){
//freopen("inp.inp","r",stdin);
cin >> n >> m >> k;
for(ll i=1 ; i<=m ; i++){
ll u,v,w; cin >> u >> v >> w;
a[u].pb({v,w});
a[v].pb({u,w});
}
ktra[k]=true;
vet[u]=k;
Try(k);
if(ans==INF cout << "error!\n";
else{
cout << ans <<"\n";
for(ll i=0; i<=n ; i++){
cout << best[i] << " ";
}
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCmNvbnN0IGxsIE1BWE4gPSAzMCs3Owpjb25zdCBsbCBJTkYgPSAxZTE4Owp2ZWN0b3IgPHZlY3RvcjxwYWlyPGxsLGxsPj4+IGEoTUFYTik7CnZlY3RvciA8Ym9vbD4ga3RyYShNQVhOLGZhbHNlKTsKdmVjdG9yIDxsbD4gdmV0KE1BWE4pLGJlc3QoTUFYTik7CmxsIHRjcCx1PTAsYW5zPUlORjsKbGwgbixtLGs7Cgp2b2lkIFRyeShsbCB4cCl7CiAgICBmb3IoYXV0byBjYW5oOmFbeHBdKXsKICAgICAgICBsbCB2PWNhbmguZmksIHc9Y2FuaC5zZTsKICAgICAgICBpZigha3RyYVt2XSl7CiAgICAgICAgICAgIGt0cmFbdl09dHJ1ZTsKICAgICAgICAgICAgdSsrOyB2ZXRbdV09djsgdGNwKz13OwogICAgICAgICAgICBUcnkodik7CiAgICAgICAgICAgIGt0cmFbdl09ZmFsc2U7CiAgICAgICAgICAgIHUtLTsKICAgICAgICAgICAgdGNwLT13OwogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICBpZih2PT1rICYmIHUrMT09bil7CiAgICAgICAgICAgICAgICBpZihhbnM+dGNwK3cpewogICAgICAgICAgICAgICAgICAgIGFucz10Y3ArdzsKICAgICAgICAgICAgICAgICAgICBmb3IobGwgaT0wIDsgaTw9dSA7IGkrKykgYmVzdFtpXT12ZXRbaV07CiAgICAgICAgICAgICAgICAgICAgYmVzdFt1KzFdPWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCgoKaW50IG1haW4oKXsKICAgIC8vZnJlb3BlbigiaW5wLmlucCIsInIiLHN0ZGluKTsKICAgIGNpbiA+PiBuID4+IG0gPj4gazsKICAgIGZvcihsbCBpPTEgOyBpPD1tIDsgaSsrKXsKICAgICAgICBsbCB1LHYsdzsgY2luID4+IHUgPj4gdiA+PiB3OwogICAgICAgIGFbdV0ucGIoe3Ysd30pOwogICAgICAgIGFbdl0ucGIoe3Usd30pOwogICAgfQogICAga3RyYVtrXT10cnVlOwogICAgdmV0W3VdPWs7CiAgICBUcnkoayk7CiAgICBpZihhbnM9PUlORiBjb3V0IDw8ICJlcnJvciFcbiI7CiAgICBlbHNlewogICAgICAgIGNvdXQgPDwgYW5zIDw8IlxuIjsKICAgICAgICAgICAgZm9yKGxsIGk9MDsgaTw9biA7IGkrKyl7CiAgICAgICAgICAgIGNvdXQgPDwgYmVzdFtpXSA8PCAiICI7CiAgICAgICAgfQogICAgfQp9
prog.cpp: In function ‘int main()’:
prog.cpp:52:8: warning: init-statement in selection statements only available with -std=c++17 or -std=gnu++17
if(ans==INF cout << "error!\n";
^~~
prog.cpp:52:16: error: expected ‘;’ before ‘cout’
if(ans==INF cout << "error!\n";
^~~~~
;
prog.cpp:53:5: error: expected primary-expression before ‘else’
else{
^~~~
prog.cpp:52:36: error: expected ‘)’ before ‘else’
if(ans==INF cout << "error!\n";
~ ^
)
else{
~~~~
prog.cpp:59:1: error: expected primary-expression before ‘}’ token
}
^