#include <bits/stdc++.h>   using namespace std;   long long int _sieve_size;   bitset<10000010> bs;   vector<int> primes;   void sieve(long long int upperbound) {     _sieve_size = upperbound + 1;     bs.set();     bs[0] = bs[1] = 0;     for (long long int i = 2; i <= _sieve_size; i++)       if (bs[i]) {         for (long long int j = i * i; j <= _sieve_size; j += i) bs[j] = 0;         primes.push_back((int)i);       }   }   bool isPrime(long long int N) {     if (N <= _sieve_size) return bs[N];     for (int i = 0; i < (int)primes.size(); i++)       if (N % primes[i] == 0) return false;     return true;   }   int main() {     int h1, m1, h2, m2, oh, om;     char tmp;     cin >> h1 >> tmp >> m1;     cin >> h2 >> tmp >> m2;     om = m1 - m2;     if (om < 0) {       om += 60;       h1 -= 1;     }     oh = h1 - h2;     if (oh < 0) {       oh += 24;     }     if (oh < 10) {       cout << 0 << oh;     } else       cout << oh;     cout << tmp;     if (om < 10) {       cout << 0 << om;     } else       cout << om;     return 0;   }   