#include #include using namespace std; int score(int a, int b) { int d = abs(a-b); if(d <= 15) return 7; if(d <= 23) return 6; if(d <= 43) return 4; if(d <= 102) return 2; return 0; } int main() { int n, m; cin >> n >> m; vector> dp(n+1); for(auto& x: dp) x.resize(m+1); vector expectedv(n), actualv(m); for(auto& x: expectedv) cin >> x; for(auto& x: actualv) cin >> x; for(int i = 0; i <= n; i++) { for(int j = 0; j <= m; j++) { if(i < n) dp[i+1][j] = max(dp[i+1][j], dp[i][j]); if(j < m) dp[i][j+1] = max(dp[i][j+1], dp[i][j]); if(i < n && j < m) dp[i+1][j+1] = max(dp[i+1][j+1], dp[i][j] + score(expectedv[i], actualv[j])); } } cout << dp[n][m] << "\n"; }