public string SolveSecondPart()
        {
            var claims = dataProvider.GetData().ToList();
            var canvas = new Canvas(claims.Max(c => c.Right), claims.Max(c => c.Bottom));

            foreach (var claim in claims)
            {
                canvas.AddClaim(claim);
            }
            return(claims.Single(claim => claim.HasNoConflicts()).Id.ToString());
        }
        public string SolveFirstPart()
        {
            var claims = dataProvider.GetData().ToList();
            var canvas = new Canvas(claims.Max(c => c.Right), claims.Max(c => c.Bottom));

            foreach (var claim in claims)
            {
                canvas.AddClaim(claim);
            }
            return(canvas.NumberOfSquaresWithOverlap().ToString());
        }