#include <iostream>
#include <vector>
#include <sstream>
using namespace std;
int FloorLog2(int x)
{
int result = 0;
while (x>>=1)
++result;
return result;
}
bool odd(int x)
{
return x&1==1;
}
int inverCount(vector<int> p)
{
int result = 0;
int n = p.size();
int reapat = FloorLog2(n-1)+1;
vector<int> licz(n+1, 0);
for (int j=0; j<reapat; ++j)
{
for (int i=0; i<n; ++i)
{
if (odd(p[i]))
++licz[p[i]];
else
result += licz[p[i]+1] ;
}
for (int i=0; i<n; ++i)
{
licz[i]=0;
p[i] >>= 1;
}
}
return result;
}
int main()
{
string line;
while (getline(cin, line))
{
istringstream data(line);
vector<int> per;
int x;
while (data >>x)
per.push_back(x);
cout << line << " = " << inverCount(per) << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3N0cmVhbT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgRmxvb3JMb2cyKGludCB4KQp7CglpbnQgcmVzdWx0ID0gMDsKCXdoaWxlICh4Pj49MSkKCQkrK3Jlc3VsdDsKCXJldHVybiByZXN1bHQ7Cn0KCmJvb2wgb2RkKGludCB4KQp7CglyZXR1cm4geCYxPT0xOwkKfQoKaW50IGludmVyQ291bnQodmVjdG9yPGludD4gcCkKewoJaW50IHJlc3VsdCA9IDA7CglpbnQgbiA9IHAuc2l6ZSgpOwoJaW50IHJlYXBhdCA9IEZsb29yTG9nMihuLTEpKzE7Cgl2ZWN0b3I8aW50PiBsaWN6KG4rMSwgMCk7Cglmb3IgKGludCBqPTA7IGo8cmVhcGF0OyArK2opCgl7CgkJZm9yIChpbnQgaT0wOyBpPG47ICsraSkKCQl7CgkJCWlmIChvZGQocFtpXSkpCgkJCQkrK2xpY3pbcFtpXV07CgkJCWVsc2UKCQkJCXJlc3VsdCArPSBsaWN6W3BbaV0rMV0gOwoJCX0KCQlmb3IgKGludCBpPTA7IGk8bjsgKytpKQoJCXsKCQkJbGljeltpXT0wOwoJCQlwW2ldID4+PSAxOwoJCX0KCX0KCXJldHVybiByZXN1bHQ7Cn0KCmludCBtYWluKCkKewoJc3RyaW5nIGxpbmU7Cgl3aGlsZSAoZ2V0bGluZShjaW4sIGxpbmUpKQoJewoJCWlzdHJpbmdzdHJlYW0gZGF0YShsaW5lKTsKCQl2ZWN0b3I8aW50PiBwZXI7CgkJaW50IHg7CgkJd2hpbGUgKGRhdGEgPj54KQoJCQlwZXIucHVzaF9iYWNrKHgpOwoJCWNvdXQgPDwgbGluZSA8PCAiID0gIiA8PCAgaW52ZXJDb3VudChwZXIpIDw8IGVuZGw7Cgl9CglyZXR1cm4gMDsKfQ==