/*
Author : deepak2015
Plagiarism is bad.
*/
#include <bits/stdc++.h>
using namespace std;
#define MOD 1000000007
#define epsilon 0.000000000001
#define PI 3.1415926535897932
#define I_MAX 92203685477580799
#define I_MIN -92203685477580799
#define ll long long
#define endl "\n"
#define mset(arr,x) memset(arr,x,sizeof(arr))
#define rep(i,s,e) for(i=s;i<=e;i++)
#define rrep(i,s,e) for(i=s;i>=e;i--)
#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))
// Useful STL commands:
#define pb push_back
#define mp make_pair
#define f first
#define s second
#define all(c) c.begin(),c.end()
#define tr(c,it) for(auto it=c.begin();it!=c.end();++it)
#define trrev(c,it) for(auto it=c.rbegin();it!=c.rend();++it)
#define DEBUG
#ifdef DEBUG
#define trace1(x) cerr << #x << ": " << x << endl;
#define trace2(x, y) cerr << #x << ": " << x << " | " << #y << ": " << y << endl;
#define trace3(x, y, z) cerr << #x << ": " << x << " | " << #y << ": " << y << " | " << #z << ": " << z << endl;
#define trace4(a, b, c, d) cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << endl;
#define trace5(a, b, c, d, e) cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << " | " << #e << ": " << e << endl;
#define trace6(a, b, c, d, e, f) cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << " | " << #e << ": " << e << " | " << #f << ": " << f << endl;
#else
#define trace1(x)
#define trace2(x, y)
#define trace3(x, y, z)
#define trace4(a, b, c, d)
#define trace5(a, b, c, d, e)
#define trace6(a, b, c, d, e, f)
#endif
// scanf and printf
#define si(a) scanf("%d", &a)
#define sl(a) scanf("%lld", &a)
#define pi(a) printf("%d", a)
#define pl(a) printf("%lld", a)
#define pn printf("\n")
ll gcd( ll a, ll b)
{
if ( ( a == 0 ) || ( b == 0 ) )
return a + b;
return gcd( b, a % b) ;
}
ll pow_mod( ll a, ll b)
{
ll res = 1 ;
while ( b)
{
if ( b & 1 )
res = ( res * a) % MOD;
a = ( a * a) % MOD;
b >>= 1 ;
}
return ( res% MOD) ;
}
ll pow_2( ll a, ll b)
{
ll res = 1 ;
while ( b)
{
if ( b & 1 )
res = ( res * a) ;
a = ( a * a) ;
b >>= 1 ;
}
return res;
}
bool isPrime( ll a)
{
for ( int i= 3 ; ( i* i) <= a; i+ = 2 )
{
if ( ( a% i) == 0 )
return false ;
}
if ( ( a! = 2 ) && ( ( a% 2 ) == 0 ) )
return false ;
if ( a== 1 )
return false ;
return true ;
}
string con_ll_to_str( int a )
{
stringstream mystr;
mystr << a;
return mystr.str ( ) ;
}
ll con_str_to_ll( string st )
{
ll numb = 0 ;
int len = st.size ( ) , i, j = 0 ;
rrep( i, len- 1 , 0 )
{
numb + = ( pow_2( 10 , j) * ( st[ i] - '0' ) ) ;
j++ ;
}
return numb;
}
ll baseno_to_decimal( string st, ll basee )
{
ll i = 0 , j, anss = 0 ;
rrep( j, ( int ) st.length ( ) - 1 , 0 )
{
anss + = ( st[ j] - '0' ) * pow_2( basee, i ) ;
i++ ;
}
return anss;
}
string decimal_to_string( ll num, ll basee )
{
ll i = 0 , j, opop;
string anss = "" ;
vector< string > stri;
stri.pb ( "0" ) ; stri.pb ( "1" ) ; stri.pb ( "2" ) ; stri.pb ( "3" ) ;
stri.pb ( "4" ) ; stri.pb ( "5" ) ; stri.pb ( "6" ) ; stri.pb ( "7" ) ;
stri.pb ( "8" ) ; stri.pb ( "9" ) ; stri.pb ( "A" ) ; stri.pb ( "B" ) ;
stri.pb ( "C" ) ; stri.pb ( "D" ) ; stri.pb ( "E" ) ; stri.pb ( "F" ) ;
if ( num== 0 )
{
return "0" ;
}
while ( num )
{
opop = num% basee;
anss + = stri[ opop] ;
num / = basee;
}
reverse( all( anss) ) ;
return anss;
}
const int dx[ ] = { 0 , 1 , 1 , 1 , 0 , - 1 , - 1 , - 1 } ;
const int dy[ ] = { 1 , 1 , 0 , - 1 , - 1 , - 1 , 0 , 1 } ;
// Always use double and never float.
// map : log2(N) find, count, etc
/*
struct comp
{
inline bool operator()(const pair<pair<ll, int>, bool>& pa1, const pair<pair<ll, int>, bool>& pa2) const
{
if (pa1.f.f == pa2.f.f)
return pa1.f.s < pa2.f.s;
return pa1.f.f < pa2.f.f;
}
};
*/
// bitset<99999000000000>& c = *(new bitset<99999000000000>()); // For O(1) lookup the max bitset space required.
// Don't use map in qsort comp, instead store value in vector in form of pair. It is because it takes n*log(n)*log(n) time that increases the complexity.
// cout << fixed << setprecision(12) << ans; // For 12 decimal places after the number.
// vector iterators can only be compared.
// For Directed Acyclic Graph, DFS without marking visited vertices could lead to TLE( exponential solution ).
int F[ 1000010 ] , S[ 1000010 ] , arr[ 10000010 ] ;
set< int > se;
vector< int > resf;
int main( )
{
// ios_base::sync_with_stdio(false);
// cin.tie(0);
int T, N, M, K, i, j, maa = INT_MIN ;
string st;
cin >> N >> M >> K;
rep( i, 1 , N)
{
scanf ( "%d" , & F[ i] ) ;
maa = max( maa, F[ i] ) ;
}
rep( i, 1 , M)
{
scanf ( "%d" , & S[ i] ) ;
maa = max( maa, S[ i] ) ;
}
//trace1(maa)
rep( i, 0 , maa)
{
se.insert ( i ) ;
arr[ i] = K;
}
rep( i, 1 , N)
{
if ( se.size ( ) && * se.begin ( ) <= F[ i] )
{
auto it = se.upper_bound ( F[ i] ) ;
it-- ;
arr[ * it] -- ;
if ( arr[ * it] == 0 )
{
se.erase ( it ) ;
}
}
else
{
printf ( "-1" ) ;
return 0 ;
}
}
rep( i, 1 , M)
{
if ( se.size ( ) && * se.begin ( ) <= S[ i] )
{
auto it = se.upper_bound ( S[ i] ) ;
it-- ;
resf.pb ( i) ;
arr[ * it] -- ;
if ( arr[ * it] == 0 )
{
se.erase ( it ) ;
}
}
}
int opok = resf.size ( ) ;
printf ( "%d\n " , opok) ;
rep( i, 0 , opok- 1 )
{
printf ( "%d " , resf[ i] ) ;
// cout << resf[i] << " ";
}
return 0 ;
}
LyoKQXV0aG9yIDogZGVlcGFrMjAxNQpQbGFnaWFyaXNtIGlzIGJhZC4KKi8KI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIE1PRCAxMDAwMDAwMDA3CiNkZWZpbmUgZXBzaWxvbiAwLjAwMDAwMDAwMDAwMQojZGVmaW5lIFBJIDMuMTQxNTkyNjUzNTg5NzkzMgojZGVmaW5lIElfTUFYIDkyMjAzNjg1NDc3NTgwNzk5CiNkZWZpbmUgSV9NSU4gLTkyMjAzNjg1NDc3NTgwNzk5CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZW5kbCAiXG4iCgojZGVmaW5lIG1zZXQoYXJyLHgpIG1lbXNldChhcnIseCxzaXplb2YoYXJyKSkKI2RlZmluZSByZXAoaSxzLGUpIGZvcihpPXM7aTw9ZTtpKyspCiNkZWZpbmUgcnJlcChpLHMsZSkgZm9yKGk9cztpPj1lO2ktLSkKI2RlZmluZSBtaW4oYSxiKSAoKGEpPChiKT8oYSk6KGIpKQojZGVmaW5lIG1heChhLGIpICgoYSk+KGIpPyhhKTooYikpCgovLyBVc2VmdWwgU1RMIGNvbW1hbmRzOgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIGYgZmlyc3QKI2RlZmluZSBzIHNlY29uZAojZGVmaW5lIGFsbChjKSBjLmJlZ2luKCksYy5lbmQoKQojZGVmaW5lIHRyKGMsaXQpIGZvcihhdXRvIGl0PWMuYmVnaW4oKTtpdCE9Yy5lbmQoKTsrK2l0KQojZGVmaW5lIHRycmV2KGMsaXQpIGZvcihhdXRvIGl0PWMucmJlZ2luKCk7aXQhPWMucmVuZCgpOysraXQpCgojZGVmaW5lIERFQlVHCiNpZmRlZiBERUJVRwojZGVmaW5lIHRyYWNlMSh4KSAgICAgICAgICAgICAgICAgICAgY2VyciA8PCAjeCA8PCAiOiAiIDw8IHggPDwgZW5kbDsKI2RlZmluZSB0cmFjZTIoeCwgeSkgICAgICAgICAgICAgICAgIGNlcnIgPDwgI3ggPDwgIjogIiA8PCB4IDw8ICIgfCAiIDw8ICN5IDw8ICI6ICIgPDwgeSA8PCBlbmRsOwojZGVmaW5lIHRyYWNlMyh4LCB5LCB6KSAgICAgICAgICAgICAgY2VyciA8PCAjeCA8PCAiOiAiIDw8IHggPDwgIiB8ICIgPDwgI3kgPDwgIjogIiA8PCB5IDw8ICIgfCAiIDw8ICN6IDw8ICI6ICIgPDwgeiA8PCBlbmRsOwojZGVmaW5lIHRyYWNlNChhLCBiLCBjLCBkKSAgICAgICAgICAgY2VyciA8PCAjYSA8PCAiOiAiIDw8IGEgPDwgIiB8ICIgPDwgI2IgPDwgIjogIiA8PCBiIDw8ICIgfCAiIDw8ICNjIDw8ICI6ICIgPDwgYyA8PCAiIHwgIiA8PCAjZCA8PCAiOiAiIDw8IGQgPDwgZW5kbDsKI2RlZmluZSB0cmFjZTUoYSwgYiwgYywgZCwgZSkgICAgICAgIGNlcnIgPDwgI2EgPDwgIjogIiA8PCBhIDw8ICIgfCAiIDw8ICNiIDw8ICI6ICIgPDwgYiA8PCAiIHwgIiA8PCAjYyA8PCAiOiAiIDw8IGMgPDwgIiB8ICIgPDwgI2QgPDwgIjogIiA8PCBkIDw8ICIgfCAiIDw8ICNlIDw8ICI6ICIgPDwgZSA8PCBlbmRsOwojZGVmaW5lIHRyYWNlNihhLCBiLCBjLCBkLCBlLCBmKSAgICAgY2VyciA8PCAjYSA8PCAiOiAiIDw8IGEgPDwgIiB8ICIgPDwgI2IgPDwgIjogIiA8PCBiIDw8ICIgfCAiIDw8ICNjIDw8ICI6ICIgPDwgYyA8PCAiIHwgIiA8PCAjZCA8PCAiOiAiIDw8IGQgPDwgIiB8ICIgPDwgI2UgPDwgIjogIiA8PCBlIDw8ICIgfCAiIDw8ICNmIDw8ICI6ICIgPDwgZiA8PCBlbmRsOwojZWxzZQojZGVmaW5lIHRyYWNlMSh4KQojZGVmaW5lIHRyYWNlMih4LCB5KQojZGVmaW5lIHRyYWNlMyh4LCB5LCB6KQojZGVmaW5lIHRyYWNlNChhLCBiLCBjLCBkKQojZGVmaW5lIHRyYWNlNShhLCBiLCBjLCBkLCBlKQojZGVmaW5lIHRyYWNlNihhLCBiLCBjLCBkLCBlLCBmKQojZW5kaWYKCi8vIHNjYW5mIGFuZCBwcmludGYKI2RlZmluZSBzaShhKQkJCXNjYW5mKCIlZCIsICZhKQojZGVmaW5lIHNsKGEpCQkJc2NhbmYoIiVsbGQiLCAmYSkKI2RlZmluZSBwaShhKQkJCXByaW50ZigiJWQiLCBhKQojZGVmaW5lIHBsKGEpCQkJcHJpbnRmKCIlbGxkIiwgYSkKI2RlZmluZSBwbiAJCQkJcHJpbnRmKCJcbiIpCgpsbCBnY2QobGwgYSwgbGwgYikKewogICAgaWYoIChhID09IDApIHx8IChiID09IDApICkKICAgICAgICByZXR1cm4gYSArIGI7CgogICAgcmV0dXJuIGdjZChiLCBhICUgYik7Cn0KbGwgcG93X21vZChsbCBhLCBsbCBiKQp7CiAgICBsbCByZXMgPSAxOwogICAgd2hpbGUoYikKICAgIHsKICAgICAgICBpZihiICYgMSkKICAgICAgICAgICAgcmVzID0gKHJlcyAqIGEpJU1PRDsKICAgICAgICBhID0gKGEgKiBhKSVNT0Q7CiAgICAgICAgYiA+Pj0gMTsKICAgIH0KCiAgICByZXR1cm4gKHJlcyVNT0QpOwp9CmxsIHBvd18yKGxsIGEsIGxsIGIpCnsKICAgIGxsIHJlcyA9IDE7CiAgICB3aGlsZShiKQogICAgewogICAgICAgIGlmKGIgJiAxKQogICAgICAgICAgICByZXMgPSAocmVzICogYSk7CiAgICAgICAgYSA9IChhICogYSk7CiAgICAgICAgYiA+Pj0gMTsKICAgIH0KICAgIHJldHVybiByZXM7Cn0KYm9vbCBpc1ByaW1lKGxsIGEpCnsKICAgIGZvcihpbnQgaT0zOyAoaSppKTw9YTsgaSs9MikKICAgIHsKICAgICAgICBpZiggKGElaSk9PTAgKQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICBpZiggKCBhIT0yICkgJiYgKCAoYSUyKT09MCApICkKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICBpZiggYT09MSApCiAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgIHJldHVybiB0cnVlOwp9CnN0cmluZyBjb25fbGxfdG9fc3RyKCBpbnQgYSApCnsKICAgIHN0cmluZ3N0cmVhbSBteXN0cjsKICAgIG15c3RyIDw8IGE7CiAgICByZXR1cm4gbXlzdHIuc3RyKCk7Cn0KbGwgY29uX3N0cl90b19sbCggc3RyaW5nIHN0ICkKewogICAgbGwgbnVtYiA9IDA7CiAgICBpbnQgbGVuID0gc3Quc2l6ZSgpLCBpLCBqID0gMDsKICAgIHJyZXAoaSwgbGVuLTEsIDApCiAgICB7CiAgICAgICBudW1iICs9ICggcG93XzIoMTAsIGopICogKCBzdFtpXSAtICcwJyApICk7CiAgICAgICBqKys7CiAgICB9CgogICAgcmV0dXJuIG51bWI7Cn0KbGwgYmFzZW5vX3RvX2RlY2ltYWwoIHN0cmluZyBzdCwgbGwgYmFzZWUgKQp7CiAgICBsbCBpID0gMCwgaiwgYW5zcyA9IDA7CiAgICBycmVwKGosIChpbnQpc3QubGVuZ3RoKCktMSwgMCkKICAgIHsKICAgICAgICBhbnNzICs9ICggc3Rbal0gLSAnMCcgKSAqIHBvd18yKCBiYXNlZSwgaSApOwogICAgICAgIGkrKzsKICAgIH0KCiAgICByZXR1cm4gYW5zczsKfQpzdHJpbmcgZGVjaW1hbF90b19zdHJpbmcoIGxsIG51bSwgbGwgYmFzZWUgKQp7CiAgICBsbCBpID0gMCwgaiwgb3BvcDsKICAgIHN0cmluZyBhbnNzID0gIiI7CiAgICB2ZWN0b3I8IHN0cmluZyA+IHN0cmk7CiAgICBzdHJpLnBiKCIwIik7IHN0cmkucGIoIjEiKTsgc3RyaS5wYigiMiIpOyBzdHJpLnBiKCIzIik7CiAgICBzdHJpLnBiKCI0Iik7IHN0cmkucGIoIjUiKTsgc3RyaS5wYigiNiIpOyBzdHJpLnBiKCI3Iik7CiAgICBzdHJpLnBiKCI4Iik7IHN0cmkucGIoIjkiKTsgc3RyaS5wYigiQSIpOyBzdHJpLnBiKCJCIik7CiAgICBzdHJpLnBiKCJDIik7IHN0cmkucGIoIkQiKTsgc3RyaS5wYigiRSIpOyBzdHJpLnBiKCJGIik7CiAgICBpZiggbnVtPT0wICkKICAgIHsKICAgICAgICByZXR1cm4gIjAiOwogICAgfQogICAgd2hpbGUoIG51bSApCiAgICB7CiAgICAgICAgb3BvcCA9IG51bSViYXNlZTsKICAgICAgICBhbnNzICs9IHN0cmlbb3BvcF07CiAgICAgICAgbnVtIC89IGJhc2VlOwogICAgfQogICAgcmV2ZXJzZSggYWxsKGFuc3MpICk7CgogICAgcmV0dXJuIGFuc3M7Cn0KY29uc3QgaW50IGR4W10gPSB7MCwgMSwgMSwgMSwgMCwgLTEsIC0xLCAtMX07CmNvbnN0IGludCBkeVtdID0gezEsIDEsIDAsIC0xLCAtMSwgLTEsIDAsIDF9OwovLyBBbHdheXMgdXNlIGRvdWJsZSBhbmQgbmV2ZXIgZmxvYXQuCi8vIG1hcCA6IGxvZzIoTikgZmluZCwgY291bnQsIGV0YwovKgpzdHJ1Y3QgY29tcAp7CiAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcigpKGNvbnN0IHBhaXI8cGFpcjxsbCwgaW50PiwgYm9vbD4mIHBhMSwgY29uc3QgcGFpcjxwYWlyPGxsLCBpbnQ+LCBib29sPiYgcGEyKSBjb25zdAogICAgewogICAgICAgIGlmIChwYTEuZi5mID09IHBhMi5mLmYpCiAgICAgICAgICAgIHJldHVybiBwYTEuZi5zIDwgcGEyLmYuczsKICAgICAgICByZXR1cm4gcGExLmYuZiA8IHBhMi5mLmY7CiAgICB9Cn07CiovCi8vIGJpdHNldDw5OTk5OTAwMDAwMDAwMD4mIGMgPSAqKG5ldyBiaXRzZXQ8OTk5OTkwMDAwMDAwMDA+KCkpOyAgIC8vIEZvciBPKDEpIGxvb2t1cCB0aGUgbWF4IGJpdHNldCBzcGFjZSByZXF1aXJlZC4KLy8gRG9uJ3QgdXNlIG1hcCBpbiBxc29ydCBjb21wLCBpbnN0ZWFkIHN0b3JlIHZhbHVlIGluIHZlY3RvciBpbiBmb3JtIG9mIHBhaXIuIEl0IGlzIGJlY2F1c2UgaXQgdGFrZXMgbipsb2cobikqbG9nKG4pIHRpbWUgdGhhdCBpbmNyZWFzZXMgdGhlIGNvbXBsZXhpdHkuCi8vIGNvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDEyKSA8PCBhbnM7ICAvLyBGb3IgMTIgZGVjaW1hbCBwbGFjZXMgYWZ0ZXIgdGhlIG51bWJlci4KLy8gdmVjdG9yIGl0ZXJhdG9ycyBjYW4gb25seSBiZSBjb21wYXJlZC4KLy8gRm9yIERpcmVjdGVkIEFjeWNsaWMgR3JhcGgsIERGUyB3aXRob3V0IG1hcmtpbmcgdmlzaXRlZCB2ZXJ0aWNlcyBjb3VsZCBsZWFkIHRvIFRMRSggZXhwb25lbnRpYWwgc29sdXRpb24gKS4KCmludCBGWzEwMDAwMTBdLCBTWzEwMDAwMTBdLCBhcnJbMTAwMDAwMTBdOwpzZXQ8aW50PiBzZTsKdmVjdG9yPCBpbnQgPiByZXNmOwppbnQgbWFpbigpCnsKCi8vICAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKLy8gICAgIGNpbi50aWUoMCk7CgogICAgIGludCBULCBOLCBNLCBLLCBpLCBqLCBtYWEgPSBJTlRfTUlOOwogICAgIHN0cmluZyBzdDsKCiAgICAgY2luID4+IE4gPj4gTSA+PiBLOwogICAgIHJlcChpLCAxLCBOKQogICAgIHsKICAgICAgICAgc2NhbmYoIiVkIiwgJkZbaV0pOwogICAgICAgICBtYWEgPSBtYXgobWFhLCBGW2ldKTsKICAgICB9CiAgICAgcmVwKGksIDEsIE0pCiAgICAgewogICAgICAgICBzY2FuZigiJWQiLCAmU1tpXSk7CiAgICAgICAgIG1hYSA9IG1heChtYWEsIFNbaV0pOwogICAgIH0KICAgICAvL3RyYWNlMShtYWEpCiAgICAgcmVwKGksIDAsIG1hYSkKICAgICB7CiAgICAgICAgc2UuaW5zZXJ0KCBpICk7CiAgICAgICAgYXJyW2ldID0gSzsKICAgICB9CgogICAgIHJlcChpLCAxLCBOKQogICAgIHsKICAgICAgICAgaWYoIHNlLnNpemUoKSAmJiAqc2UuYmVnaW4oKSA8PSBGW2ldICkKICAgICAgICAgewogICAgICAgICAgICAgYXV0byBpdCA9IHNlLnVwcGVyX2JvdW5kKCBGW2ldICk7CiAgICAgICAgICAgICBpdC0tOwogICAgICAgICAgICAgYXJyWyppdF0tLTsKICAgICAgICAgICAgIGlmKCBhcnJbKml0XT09MCApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgc2UuZXJhc2UoIGl0ICk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICB7CiAgICAgICAgICAgICBwcmludGYoIi0xIik7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgIH0KCiAgICAgcmVwKGksIDEsIE0pCiAgICAgewogICAgICAgICBpZiggc2Uuc2l6ZSgpICYmICpzZS5iZWdpbigpIDw9IFNbaV0gKQogICAgICAgICB7CiAgICAgICAgICAgICBhdXRvIGl0ID0gc2UudXBwZXJfYm91bmQoIFNbaV0gKTsKICAgICAgICAgICAgIGl0LS07CiAgICAgICAgICAgICByZXNmLnBiKGkpOwogICAgICAgICAgICAgYXJyWyppdF0tLTsKICAgICAgICAgICAgIGlmKCBhcnJbKml0XT09MCApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgc2UuZXJhc2UoIGl0ICk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAgICAgaW50IG9wb2sgPSByZXNmLnNpemUoKTsKICAgICBwcmludGYoIiVkXG4iLCBvcG9rKTsKICAgICByZXAoaSwgMCwgb3Bvay0xKQogICAgIHsKICAgICAgICAgcHJpbnRmKCIlZCAiLCByZXNmW2ldKTsKLy8gICAgICAgICBjb3V0IDw8IHJlc2ZbaV0gPDwgIiAiOwogICAgIH0KCiAgICAgcmV0dXJuIDA7Cn0K