#include <bits/stdc++.h>
using namespace std;
int a[305],b[305];
int32_t main() {
ios_base::sync_with_stdio(0),cin.tie(0);
int n,m,k;cin>>n>>m>>k;
for(int i = 1 ; i<=n ; ++i) cin>>a[i];
for(int i = 1 ; i<=m ; ++i) cin>>b[i];
int sum1 = 0;
for(int i = 1 ; i<=n ; ++i) sum1 += a[i];
sort(b+1,b+m+1);
reverse(b+1,b+m+1);
int l = k,r = m+1;
while(l<r) {
bool ch = 1;
int md = (l+r)/2,sum = 0;
priority_queue<int> pq;
for(int i = 1 ; i<=md ; ++i) pq.push(b[i]),sum += b[i];
if(sum < sum1) ch = 0;
for(int i = 0; i<n ; ++i) {
vector<int> tmp;
for(int j = 0; j<k ; ++j) {
int get = pq.top();pq.pop();
if(get <= 0) ch = 0;
tmp.push_back(get-1);
}
for(int x:tmp) pq.push(x);
}
if(ch) r = md;
else l = md+1;
}
if(l >= m+1) cout << "Imposssible";
else cout << l;
}