import java.util.*;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<Point> pointArrayList = new ArrayList<>();
Set<Line> lines=new HashSet<>();
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 21; j++) {
pointArrayList.add(new Point(i, j));
}
}
int ans=0;
for (int i = 0; i < pointArrayList.size(); i++) {
for (int j = i+1; j < pointArrayList.size(); j++) {
double k;
double b;
ans++;
if (pointArrayList.get(i).x == pointArrayList.get(j).x) {
continue;
} else if (pointArrayList.get(i).y == pointArrayList.get(j).y) {
continue;
} else {
k = (pointArrayList.get(i).y - pointArrayList.get(j).y) / (pointArrayList.get(i).x - pointArrayList.get(j).x);
b = (pointArrayList.get(j).x * pointArrayList.get(i).y-pointArrayList.get(j).y*pointArrayList.get(i).x)/(pointArrayList.get(j).x-pointArrayList.get(i).x);
// b= pointArrayList.get(i).y-pointArrayList.get(i).x*k;
Line line=new Line(k,b);
lines.add(line);
}
}
}
System.out.println(lines.size()+20+21);
System.out.println(ans);
}
}
class Point {
double x;
double y;
public Point(double x, double y) {
this.x = x;
this.y = y;
}
@Override
public String toString() {
return "Point{" +
"x=" + x +
", y=" + y +
'}';
}
}
class Line {
double k;
double b;
public Line(double k, double b) {
this.k = k;
this.b = b;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Line line = (Line) o;
return k == line.k && b == line.b;
}
@Override
public int hashCode() {
return Objects.hash(k, b);
}
}