void mt(ref string S) { if (S.length == 2 && S[0] == '0') { S.popFront; } } void main() { auto A = readString; auto B = readString; A.mt; B.mt; int a = A.to!int; int b = B.to!int; int[] T; foreach (i; 0 .. 30) { T ~= i * 12 * 60 * 60 / 11; } int x = a * 60 * 60 + b * 60; const ans = T[T.lowerBound(x)] - x; writeln(ans); } import std,core.bitop; string[]_R; string readString(){while(_R.empty){_R=readln.chomp.split;}auto ret=_R.front;_R.popFront;return ret;} int readInt(){return readString.to!int;} long readLong(){return readString.to!long;} real readReal(){return readString.to!real;} bool chmin(T)(ref T A,T B){if(A>B){A=B;return true;}else{return false;}} bool chmax(T)(ref T A,T B){if(A1){int mid=(L+R)/2;(A[mid]1){int mid=(L+R)/2;(A[mid]<=x?L:R)=mid;}return R;}