https://www.acmicpc.net/problem/16928
#pragma GCC optimize ("O3")
#include <bits/stdc++.h>
#define fastio ios::sync_with_stdio(0), cin.tie(0), cout.tie(0)
#define int int64_t
using namespace std;
int32_t main() {
fastio;
vector<int> v(101, -1),dist(101,-1);
int n,m; cin >> n >> m;
for(int i = 0; i < n + m; i++){
int a,b; cin >> a >> b;
v[a] = b;
}
queue<int> Q;
dist[1] = 0;
Q.push(1);
while(!Q.empty()){
auto cur = Q.front(); Q.pop();
for(int i = 1; i <= 6; i++){
if(cur + i > 100) break;
auto nxt = (v[cur + i]!=-1 ? v[cur + i] : cur + i);
if(dist[nxt] != -1) continue;
dist[nxt] = dist[cur] + 1;
Q.push(nxt);
}
}
cout << dist[100] << "\n";
}