//Normal #define _GLIBCXX_DEBUG #define ll long long #include using namespace std; using Graph = vector>; void print(auto a){ cout << a; } void prints(auto a){ cout << a << " "; } void prints(){ cout << " "; } void printl(auto a){ cout << a << endl; } void printl(){ cout << endl; } void fix(int n){ cout << fixed << setprecision(n); } int main(){ int A, B, C, D, M; cin >> A >> B >> C >> D >> M; int ans = 1e9 * -1; for(int i = A; i <= B; i++){ for(int j = C; j <= D; j++){ ans = max(ans, (i+j)%M); } } printl(ans); return 0; }