#include <iostream>
#include <vector>
#include <queue>
#include <cstring>
using namespace std;
typedef long long ll;
const int MAXN = 55; // 顶点数
const int MAXM = 20; // 约束数
vector<pair<int, int>> G[MAXN]; // 树:邻接表存 (to, edge_id)
ll edge_mask[MAXM]; // 第i个约束路径对应的边集合(二进制mask)
int N, M;
// BFS 找 u->v 路径上的所有边,返回二进制mask
ll get_path_mask(int u, int v) {
queue<int> q;
int from[MAXN], eid[MAXN]; // from: 前驱点 eid: 前驱边
memset(from, -1, sizeof(from));
q.push(u);
from[u] = u;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
}