#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<int> a(n+1), b(n+1);
for(int i = 1; i <= n; i++) cin >> a[i];
for(int i = 1; i <= n; i++) cin >> b[i];
vector<int> prev(n+1, 0), curr(n+1, 0);
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n; j++) {
curr[j] = max(prev[j], curr[j-1]);
if(a[i] == b[j]) {
curr[j] = max(curr[j], prev[j-1] + a[i]);
}
}
prev = curr;
}
cout << prev[n] << "\n";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CgogICAgaW50IG47CiAgICBjaW4gPj4gbjsKCiAgICB2ZWN0b3I8aW50PiBhKG4rMSksIGIobisxKTsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjaW4gPj4gYVtpXTsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjaW4gPj4gYltpXTsKCiAgICB2ZWN0b3I8aW50PiBwcmV2KG4rMSwgMCksIGN1cnIobisxLCAwKTsKCiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIGZvcihpbnQgaiA9IDE7IGogPD0gbjsgaisrKSB7CiAgICAgICAgICAgIGN1cnJbal0gPSBtYXgocHJldltqXSwgY3VycltqLTFdKTsKICAgICAgICAgICAgaWYoYVtpXSA9PSBiW2pdKSB7CiAgICAgICAgICAgICAgICBjdXJyW2pdID0gbWF4KGN1cnJbal0sIHByZXZbai0xXSArIGFbaV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHByZXYgPSBjdXJyOwogICAgfQoKICAgIGNvdXQgPDwgcHJldltuXSA8PCAiXG4iOwp9