//bismillahir rahmanir rahim            //Author:Fayed Anik
 
#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
 
using namespace std;
//using namespace __gnu_pbds;
 
//#define         ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define         ll                          long  long
#define         lf                          double
#define         pb(x)                       push_back(x)
#define         ull                         unsigned long long
#define         sfl(a)                      scanf("%lld",&a)
#define         sf(a)                       scanf("%d",&a)
#define         pf(a)                       printf("%d\n",a)
#define         pfl(a)                      printf("%lld\n",a)
#define         FOR(x,n)                    for(ll x=1;x<=n;++x)
#define         pii                         pair< ll , ll >
#define         mp(a,b)                     make_pair(a,b)
#define         UNIQUE(v)                   v.resize(distance(v.begin(),unique(v.begin(),v.end())))
#define         mod                         1000000007
#define         INF                         2e18
#define         EPS                         1e-15
#define         f1                          first
#define         f2                          second
#define         all(v)                      v.begin(),v.end()
#define         PI                          acos(-1)
#define         printminusone               printf("-1\n")
#define         bug                         printf("bug")
#define         FILEIN                      freopen("in.txt","r",stdin)
#define         FILEOUT                     freopen("out.txt","w",stdout)
 
//ll SET(ll mask,ll pos){ return mask = (mask | (1ll<<pos)); }
//ll RESET(ll mask,ll pos){ return mask = mask & ~(1ll<<pos); }
//bool CHECK(ll mask,ll pos) { return (bool) (mask & (1ll<<pos)); }
//priority_queue <ll, vector<ll>, greater<ll> > pq;
//int dx[]={0,0,1,-1,1,1,-1,-1};
//int dy[]={1,-1,0,0,1,-1,1,-1};

#define lim 200005

ll cumsa[lim],cumsb[lim];
int main(){
    //freopen("input.txt","r",stdin);
    //freopen("output.txt","w",stdout);
    ll n,m,k,x;
    sfl(n),sfl(m),sfl(k);
    FOR(i,n){
        sfl(x);
        cumsa[i]=cumsa[i-1]+x;
    }
    FOR(i,m){
        sfl(x);
        cumsb[i]=cumsb[i-1]+x;
    }
    ll mx = 0;
    for(ll i=1;i<=n;i++){
        if( cumsa[i]<=k ){
            ll baki = k-cumsa[i];
            ll lw=1,hi = m,mid,ind=0;
            while(lw<=hi){
                mid=(lw+hi)/2;
                if( cumsb[mid]<=baki ){
                    ind =  mid;
                    lw = mid+1;
                }
                else{
                    hi = mid-1;
                }
            }
            mx = max(mx,i+ind);
        }
    }
    for(ll i=1;i<=m;i++){
        if( cumsb[i]<=k ){
            ll baki = k-cumsb[i];
            ll lw=1,hi = n,mid,ind=0;
            while(lw<=hi){
                mid=(lw+hi)/2;
                if( cumsa[mid]<=baki ){
                    ind =  mid;
                    lw = mid+1;
                }
                else{
                    hi = mid-1;
                }
            }
            mx = max(mx,i+ind);
        }
    }
    pfl(mx);
    return 0;

}


Measured memory_bytes: 6944