#include #include int table(int64_t t1, int64_t t2) { int64_t diff = std::abs(t1-t2); if(diff <= 15) return 7; else if(diff <= 23) return 6; else if(diff <= 43) return 4; else if(diff <= 102) return 2; else return 0; } int main() { int n, m; std::cin >> n >> m; std::vector e(n); std::vector a(m); for(int i=0; i> e[i]; for(int i=0; i> a[i]; std::vector dp(n+1); for(int i=0; i newdp(n+1); for(int j=0; j<=n; j++) { int score = dp[j]; if(j > 0) { score = std::max(score, dp[j-1] + table(e[j-1],a[i])); score = std::max(score, newdp[j-1]); } newdp[j] = score; } dp = newdp; } std::cout << dp[n] << std::endl; }