#include #include #include #include #include #include #include #include #include #include #include #include #define vll vector #define vvvl vector #define vvl vector> #define VV(a, b, c, d) vector>(a, vector(b, c)) #define VVV(a, b, c, d) vector(a, vvl(b, vll (c, d))); #define re(c, b) for(ll c=0;c> n >> x; vll a(n), b(n); re(i, n) scanf("%lld", &a[i]); re(i, n) scanf("%lld", &b[i]); vvl minus, plus; for(int i=0;i=0;i--) dp2[p][i] = min(dp2[p][i], dp2[p][i+1]); //for(int i=0;i<=10;i++) std::cout << dp2[p][i] << (i==10?"\n":" "); //for(int i=0;i<=10;i++) std::cout << dp[m][i] << (i==10?"\n":" "); ll ans = INF; for(int i=0;i<=50000;i++){ ans = min(ans, dp2[p][i] + dp[m][i]); } std::cout << (ans==INF?-1:ans) << '\n'; return 0; }